2010年8月11日 星期三

C語言中for的運作

相信有寫過C語言的人,一定有使用過for。

但也許對於for裡面的實際運行情形不是很了解,

我覺得對於一個寫程式的人還是有必要知道。

以下面這個例子為例
   for (i=0 ; i<5; i++){
         ....
   }//end for

對於編譯器而言,會先執行 i=0

然後判斷 i是否小於5

最後執行完...的內容後,才會做i++

然後再做i<5的比較

也許這樣講大家不太清楚

下面這個範例會比較好

#include<stdio.h>
#include<stdlib.h>
int main(){
    int k=0;
    int i=0;
    for(i=0;k++,i<5;i++){
       printf("%d\n",i);       
    }//end for
    printf("i=%d k=%d",i,k);
system("pause");
}//end main

執行結果:
0
1
2
3
4
i=5 k=6請按任意鍵繼續 . . .

也就是for迴圈中以分號隔開的三個部份

最前面執行了1次,中間部份執行了6次 , 後面執行了5次

不知道這樣講解大家聽懂了嗎?

沒有留言:

張貼留言