Kuroki-Tomoko

我什麽都不知道,我只知道吃飯~

博客园 首页 新随笔 联系 订阅 管理

/*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),它什麽也不做。在C語言中,單獨的分號表示空語句。有時,程序員會故意使用帶空語句的while語句,因爲所有的任務都在測試條件中完成了,不需要在循環體中做什麽了。(像while2.c),假如,假設你想要跳過輸入達到第一個既不是空白字符也不是數字的位置,可以這樣寫:while(scanf("%d",&num)==1)

                                                                                                                                                   ;/*跳過整行輸入*/

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

posted on 2022-12-26 16:04  KurokiTomoko  阅读(22)  评论(0编辑  收藏  举报