c 基礎教程六:c 迴圈結構
阿新 • • 發佈:2019-06-27
有的時候,我們可能需要多次執行同一塊程式碼,c 語言提供瞭如下幾種迴圈,各有特色。
- while 迴圈
- for 迴圈
- do-while 迴圈
while 迴圈
只要給定的條件為真,C 語言中的 while 迴圈語句會重複執行一個目標語句。
C 語言中 while 迴圈的語法:
while(condition) {
statement(s);
}
statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的程式碼塊。
condition 可以是任意的表示式,當為任意非零值時都為 true。當條件為 true 時執行迴圈,當條件為 false 時,退出迴圈,程式流將繼續執行迴圈下面的語句。
例項:
#include <stdio.h>
int main ()
{
/* 區域性變數定義 */
int a = 10;
/* while 迴圈執行 */
while( a < 20 ) {
printf("a 的值: %d\n", a);
a++;
}
return 0;
}
結果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19
for 迴圈
for 迴圈允許您編寫一個執行指定次數的迴圈控制結構。
C 語言中 for 迴圈的語法:
for (init; condition; increment) {
statement(s);
}
解釋:
- init:會首先被執行,且只會執行一次。這一步允許您宣告並初始化任何迴圈控制變數。您也可以不在這裡寫任何語句,只要有一個分號出現即可。
- condition:如果為真,則執行迴圈主體。如果為假,則不執行迴圈主體,且控制流會跳轉到 for 迴圈後面的語句。
- increment:在執行完 for 迴圈主體後,控制流會跳回上面的 increment 語句,更新迴圈控制變數,可以為空。
- 從第二次迴圈起,條件會再次被判斷。如果為真,則執行迴圈,這個過程會不斷重複。在條件變為假時,for 迴圈終止。
例項:
#include <stdio.h>
int main ()
{
for(int i = 10; i < 20; i++) {
printf("a 的值: %d\n", a);
}
return 0;
}
結果:
i 的值: 10
i 的值: 11
i 的值: 12
i 的值: 13
i 的值: 14
i 的值: 15
i 的值: 16
i 的值: 17
i 的值: 18
i 的值: 19
do-while 迴圈
不像 for 和 while 迴圈,它們是在迴圈頭部測試迴圈條件。在 C 語言中,do...while 迴圈是在迴圈的尾部檢查它的條件。
do...while 迴圈與 while 迴圈類似,但是 do...while 迴圈會確保至少執行一次迴圈。
C 語言中 do...while 迴圈的語法:
do
{
statement(s);
} while (condition);
條件表示式出現在迴圈的尾部,所以迴圈中的 statement(s) 會在條件被測試之前至少執行一次。
如果條件為真,控制流會跳轉回上面的 do,然後重新執行迴圈中的 statement(s)。這個過程會不斷重複,直到給定條件變為假為止。
例項:
#include <stdio.h>
int main ()
{
/* 區域性變數定義 */
int a = 10;
/* do 迴圈執行 */
do
{
printf("a 的值: %d\n", a);
a = a + 1;
}while( a < 20 );
return 0;
}
結果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19
迴圈控制語句
break
c 語言中 break 語句有以下兩種用法:
- 當 break 語句出現在一個迴圈內時,迴圈會立即終止,且程式流將繼續執行迴圈後面的語句。
- 它可用於終止 switch 語句中的一個 case。
如果您使用的是巢狀迴圈(即一個迴圈內巢狀另一個迴圈),break 語句會停止執行最內層的迴圈,不會終止外層迴圈。
例項:
#include <stdio.h>
int main ()
{
int a = 10;
/* while 迴圈 */
while( a < 20 )
{
printf("a 的值: %d\n", a);
a++;
if( a > 15)
{
break;
}
}
return 0;
}
結果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
continue
c 語言中的 continue 語句有點像 break 語句。但它不是強制終止,continue 會跳過當前迴圈中的程式碼,開始下一次迴圈。
換句話就是:跳過本次迴圈,執行下一次迴圈
例項:
#include <stdio.h>
int main ()
{
int a = 10;
do {
if( a == 15) {
a = a + 1;
continue;//結束本次迴圈
}
printf("a 的值: %d\n", a);
a++;
} while (a < 20);
return 0;
}
結果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a