此程式已經陷入無限迴圈中,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 接下來,評估條件
- 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(;;)構造來表示無限迴圈。(其他死迴圈不做講解,自行補充)