for 语法叙述
描述
for 是用来重覆执行一个被大括号包住的程式码区块,通常会使用一个持续增加的计数器去判断何时要结束这个回圈。for 除了用于重覆执行程式码,也常用在处理阵列内的资料。
for 回圈的开头包含三个部分:
for (initialization ; condition ; increment)
{
//statement(s);
}

initialization 只会在进入回圈前执行一次。每次区块内程式结束后都会去判断 condition 是否成立,如果 condition 成立就重覆执行区块内程式以及 increment,反之则离开回圈。(格式与C语言等常用语言相同,且可以于初始化时宣告变数型态)
范例
// 使用 PWM 控制 LED
int PWMpin = 10; // LED 灯与 470 欧姆的电阻串联于 pin 脚 10
void setup()
{
// 不需任何动作
}
void loop()
{
for (int i=0; i <= 255; i++) {
analogWrite(PWMpin, i);
delay(10);
}
}
提醒
与其他的程式语言相比,C 语言的 for 回圈较具有弹性。在 for 回圈开头的三项设定皆可以省略,但仍须保留分号。且 for 回圈开头的三项设定并不限制仅可使用在与回圈执行相关的变数,也不限制变数的资料型态。这在解决某些问题时可以提供很大的帮助。
这个例子中我们使用乘法来递增计数器去产生一个对数级数:
for (int x = 2; x < 100; x = x * 1.5) {
println(x);
}
产生:2,3,4,6,9,13,19,28,42,63,94
在另一个例子中,我们用 for 回圈去实现 LED 灯的渐明与渐暗控制:
void loop()
{
int x = 1;
for (int i = 0; i > -1; i = i + x) {
analogWrite(PWMpin, i);
if (i == 255) x = -1; // 在 PWM 极限值 255 会切换
delay(10);
}
}
See also
- while
本页由热血青年 LBU 译自英文版。
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.
