for迴圈迭代的不同變體有哪些?


for語句的一般形式如下:

for (initialization; condition; operation)
statement;
  • 初始化是一個賦值語句,用於設定迴圈控制變數。

  • 條件是一個關係表示式,決定迴圈何時退出。

  • 操作定義了每次迴圈重複時迴圈變數如何變化。

  • 在**for迴圈**中,條件測試在迴圈頂部執行。這意味著當條件為假時,迴圈內的程式碼可能不會執行。

首先,如下例所示:

x = 10;
for (y=10; y != x; ++y)
printf (“ %d”, y);

變體1

這包括逗號運算子。逗號運算子使for迴圈的變體成為可能,如下例所示:

for(x=0, y=0; x+y < 10; ++x);

這裡,x和y都控制迴圈。

變體2

這包括迴圈定義中缺失的部分。for迴圈的一個有趣特性是,迴圈定義的部分不必存在。

例如:

for (x=0; x!=456; )
scanf ("%d", &x);

這裡,每次迴圈重複時,都測試x是否等於456。當輸入456時,迴圈條件變為假並終止迴圈。

變體3

這包括無限迴圈。如果迴圈定義中的所有部分都缺失,則會建立一個無限迴圈。break語句用於跳出迴圈,如下例所示:

for(;;){
   ch = getchar();
   if(ch == 'A')
      break;
}

變體4

這包括沒有主體for迴圈。for迴圈的主體也可能為空。這提高了某些程式碼的效率。

例如:

讓我們從str指向的流中刪除前導空格:

for ( ; *str==' '; str++) ;

迴圈的另一個應用是帶有空主體的延時,如下例所示:

for (t=0; t<1000; t++);

更新於:2021年9月1日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.