for 語法敘述

描述

for 是用來重覆執行一個被大括號包住的程式碼區塊,通常會使用一個持續增加的計數器去判斷何時要結束這個迴圈。for 除了用於重覆執行程式碼,也常用在處理陣列內的資料。
for 迴圈的開頭包含三個部分:

  for (initialization ; condition ; increment)
  {
    //statement(s);
  }

ForLoopIllustrated

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.