1. 程式人生 > >此程式已經陷入無限迴圈中,C語言基礎教程之迴圈

此程式已經陷入無限迴圈中,C語言基礎教程之迴圈

當一段程式碼需要執行多次時,您可能會遇到這種情況。通常,語句按順序執行:首先執行函式中的第一個語句,然後執行第二個語句,依此類推。

程式語言提供各種控制結構,允許更復雜的執行路徑。

迴圈語句允許我們多次執行語句或語句組。下面給出的是大多數程式語言中迴圈語句的一般形式

C程式語言提供以下型別的迴圈來處理迴圈要求。

1. while迴圈

2. For迴圈

3. Do...while迴圈

4. 巢狀迴圈

在C語言程式設計迴圈,只要給定的條件為真,重複執行一個目標語句。

語法

C程式語言中while迴圈的語法是 -

while(condition) {

statement(s);

}

這裡,語句可以是單個語句或語句塊。所述條件可以是任何表達,和真正的是任何非零值。當條件為真時,迴圈迭代。

當條件變為假時,程式控制傳遞到緊接迴圈之後的行。

在這裡,要注意的關鍵點是while迴圈可能根本不執行。當測試條件並且結果為假時,將跳過迴圈體並且將執行while迴圈之後的第一個語句。

#include <stdio.h>

int main () {

/* local variable definition */

int a = 10;

/* while loop execution */

while( a < 20 ) {

printf("value of a: %d ", a);

a++;

}

return 0;}

C程式語言中for迴圈的語法是 -

for ( init; condition; increment ) {

statement(s);

}

小編給大家推薦一個學習氛圍超好的地方,C/C++交流企鵝裙:341636727!適合在校大學生,小白,想轉行,想通過這個找工作的加入。裙裡有大量學習資料,有大神解答交流問題,每晚都有免費的直播課程

以下是'for'迴圈中的控制流程

  • l 所述初始化步驟首先被執行,並且只有一次。此步驟允許您宣告和初始化任何迴圈控制變數。只要出現分號,就不需要在此處輸入宣告。
  • l 接下來,評估條件
    。如果為真,則執行迴圈體。如果為false,則迴圈體不執行,控制流在'for'迴圈之後跳轉到下一個語句。
  • l 在執行'for'迴圈的主體之後,控制流會跳回到增量語句。此語句允許您更新任何迴圈控制變數。只要在條件之後出現分號,此語句就可以留空。
  • l 現在再次評估該條件。如果為真,則迴圈執行並且過程自身重複(迴圈體,然後遞增步驟,然後再次調節)。條件變為false後,'for'迴圈終止。

#include <stdio.h>

int main () {

int a;

/* for loop execution */

for( a = 10; a < 20; a = a + 1 )

{

printf("value of a: %d ", a);

}

return 0;

}

C程式語言中do ... while迴圈的語法是 -

do {

statement(s);

} while( condition );

請注意,條件表示式出現在迴圈的末尾,因此迴圈中的語句在測試條件之前執行一次。

如果條件為真,則控制流跳回來執行,迴圈中的語句再次執行。重複此過程直到給定條件變為假。

#include <stdio.h>

int main () {

/* local variable definition */

int a = 10;

/* do loop execution */

do {

printf("value of a: %d ", a);

a = a + 1;

}while( a < 20 );

return 0;

}

迴圈控制語句

迴圈控制語句將執行從其正常序列更改。當執行離開作用域時,將銷燬在該作用域中建立的所有自動物件。

C支援以下控制語句(自行學習,不做展示)

1. break;

2. continue

3. goto

無限迴圈

如果條件永遠不會變為假,則迴圈變為無限迴圈。該用於迴圈傳統上用於此目的。由於不需要構成'for'迴圈的三個表示式,因此可以通過將條件表示式留空來建立無限迴圈。

#include <stdio.h>

int main () {

for( ; ; ) {

printf("This loop will run forever. ");

}

return 0;}

當條件表示式不存在時,假定為真。您可能有一個初始化和增量表達式,但C程式設計師更常使用for(;;)構造來表示無限迴圈。(其他死迴圈不做講解,自行補充)