for 回圈和 BASIC 的 FOR 指令類似,但其能力比 BASIC 的 FOR 更強,其寫法如下:
for(算式 1; 算式 2; 算式 3) { 執行動作 }
for 中的三個算式分別以 『;』 分號隔開,彼此之間可以互相有關係或是基本沒有關係。 其中:
✦ 算式 1:通常是起始值的設定,此算式只有在第一次進入回圈時時才會被執行。
✦ 算式 2:通常是條件判斷式,如果條件為真時,則執行 { } 內的動作,否則離開 for 回圈。
✦ 算式 3:通常是步進運算,{ } 內的動作執行完后,必須再到這裡做運算,然後到算式 2 做判斷。
for 回圈的使用頻率較 while 和 do-while 都還要來得高,雖然也可以用 if 和 while 來完成相同的動作,可是還是以 for 最具彈性。 for 中的算式 1、2 或 3 均可省略。 以下是幾個使用 for 的程式範例:
範例一、發三聲嗶聲音
#include<iostream.h> void main() { int delay; for(int cnt=0;cnt<3;cnt++) //執行 3 次 { cout<<"beep!\b\n"; //用 '/b' 來發聲 for(delay=0;delay<10000;delay++) ; //無動作也要加 ';' } }
執行結果
beep! beep! beep!
範例二、合併多行敘述的 for 回圈
#include<iostream.h> void main() { float sum,i; for(sum=0.0,i=1.0;i<10.0;sum=sum+i,i+=0.1) ; cout<<"sum = "<<sum<<endl; }
執行結果
sum = 490.499786
範例三、無限的 for 回圈
#include<iostream.h> void main() { for(;;) { cout<<"This is an endless loop\n"; } }
執行結果
This is an endless loop This is an endless loop This is an endless loop This is an endless^C <----- 使用 Ctrl+C 來中斷程式
範例四、有起始及步進式的無限 for 回圈
#include<iostream.h> void main() { for(int i=1;;i++) cout<< i << i*i << endl; }
執行結果
1 1 2 4 3 9 4 16^C
範例五、巢狀的 for 回圈
#include<iostream.h> void main() { for(int n=1;n<=7;n++) { for(int m=0;m<n;m++) cout<"*"; cout<<"\n"; } }
執行結果
* ** *** **** ***** ****** *******