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.