/*while2.c程序->注意分號的位置*/

 1 #include<stdio.h> 2 int main(void) 3 { 4 int n=0; 5  6 while(n++<3); 7      printf("n is %d\n",n); 8 printf("That's all this program does.\n"); 9 10 return 0;11 } 

該程序的輸出如下:

n is 4

That's all this program does.

循環執行完測試條件後面的第一條語句時(簡單或者是複雜語句)后進入下一輪迭代,知道測試條件爲假才會結束。在第六行中while語句後面有一個“;”,循環在此進入下一論迭代,因爲單獨一個分號被視爲一條語句。雖然n的值在每次循環時都遞增1,但第7行的語句不是循環的一部分,所以只會打印一次循環結束後的n值。

在該例中,測試條件後面的單獨分號是空語句(null statement),它什麽也不做。在

                                                                                                                                                   ;/*跳過整行輸入*/

只要scanf()讀取一個證書,就會返回1,循環會繼續執行。注意,爲了提高代碼的可讀性,建議吧“;”單獨放在一行,不要直接放在測試表達式同行,一方面是爲了代碼清晰可讀,一方面也是告訴讀者是有意而爲之。