1. continue
語句的概要及其重要性
什麼是continue
語句
continue
語句是C語言中用於循環(loop)處理的控制語句。它可用於for
、while
、do-while
等循環結構,當符合特定條件時,會跳過當前迴圈內剩餘的處理,直接進入下一次循環。這樣可以省略不必要的處理,讓程式更有效率。
continue
語句的優點與缺點
continue
語句在控制程式流程時非常實用,但如果使用不當,可能會降低程式的可讀性。例如,在迴圈內多次使用continue
語句,會讓程式邏輯變得難以理解。因此,應在適當時機下審慎使用。
2. continue
語句的基本語法
continue
語句的基本語法
continue
語句語法很簡單,如下所示:
continue;
當執行這行語句時,會立即中止本次迴圈的後續處理,進入下一次循環。這可避免在特定條件下執行不必要的動作,使程式更加高效。
continue
語句與break
語句的差異
與continue
語句類似的還有break
語句,但用途不同。continue
語句是不中斷整個循環,而是跳過這次剩餘處理直接進入下一輪;break
語句則是直接結束整個循環。因此,continue
適用於只要略過某些條件下的處理,break
則用於完全結束循環。
3. continue
語句的基本用法
在for
語句中的continue
語句用法
在for
迴圈中使用continue
語句時,當符合特定條件,就會進入下一次迴圈。以下範例會略過偶數的處理:
#include <stdio.h>
int main() {
for(int i = 0; i < 10; i++) {
if(i % 2 == 0) {
continue; // 當i為偶數時跳過
}
printf("%dn", i);
}
return 0;
}
此程式中,當i
是偶數時執行continue
,因此printf
只會輸出奇數。
在while
語句中的continue
語句用法
在while
迴圈中同樣可以使用continue
語句。當執行continue
時,會直接進入下一輪循環。
#include <stdio.h>
int main() {
int i = 0;
while(i < 10) {
i++;
if(i % 2 == 0) {
continue; // 當i為偶數時跳過
}
printf("%dn", i);
}
return 0;
}
本範例中,當i
是偶數時continue
會被執行,因此printf
只輸出奇數。
在do-while
語句中的continue
語句用法
do-while
迴圈也能使用continue
語句,且由於do-while
至少會執行一次,行為會有些微不同。
#include <stdio.h>
int main() {
int i = 0;
do {
i++;
if(i % 2 == 0) {
continue; // 當i為偶數時跳過
}
printf("%dn", i);
} while(i < 10);
return 0;
}
此範例中,當i
為偶數時,printf
不會執行。由於do-while
的特性,會一直循環直到i
達到10。

4. continue
語句的進階應用
在巢狀迴圈中使用continue
語句的方法
continue
語句也能在巢狀迴圈(nested loop)的內層使用。以下範例為當j
等於2時跳過內層處理:
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 2) {
continue; // 當j為2時跳過
}
printf("i:%d, j:%dn", i, j);
}
}
return 0;
}
這段程式中,j
等於2時,continue
語句會被執行,所以j:2
不會出現在輸出中,使程式更有效率。
滿足特定條件時略過迴圈內處理的例子
continue
語句很適合用來在某些條件下略過處理。以下例子會跳過陣列中的負數,僅輸出正數。
#include <stdio.h>
int main() {
int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
for(int i = 0; i < 10; i++) {
if(data[i] < 0) {
continue; // 跳過負值
}
printf("%dn", data[i]);
}
return 0;
}
本範例中,若陣列元素為負數就執行continue
,因此只會輸出正數。
5. continue
語句的注意事項與最佳實踐
過度使用continue
語句會降低程式可讀性
雖然continue
語句很方便,但頻繁使用時會使程式難以閱讀。特別是在巢狀迴圈內多次出現時,容易混淆。建議盡量減少使用次數。
continue
語句的替代方法
如果想避免使用continue
語句,也可以透過改變條件分支的方式實現類似效果。例如如下反向條件判斷:
#include <stdio.h>
int main() {
for(int i = 0; i < 10; i++) {
if(i % 2 != 0) {
printf("%dn", i);
}
}
return 0;
}
這段程式只有在i
是奇數時才會執行printf
,不使用continue
即可達成同樣效果,也有助於提升可讀性。
避免程式複雜化的最佳實踐
使用continue
語句時,建議注意以下幾點:
- 為了保持程式簡潔,盡量減少
continue
語句的使用。 - 若有使用,請加上註解說明用途,增加可讀性。
- 考慮替代方案,如條件分支或函數結構,選擇最適合的方式。
6. 實作:使用continue
語句的程式設計練習
練習1:略過指定數字並輸出的程式
請撰寫一個輸出1到10的程式,但跳過用戶輸入的數字。例如輸入「3」時,結果為「1 2 4 5 6 7 8 9 10」。
#include <stdio.h>
int main() {
int num;
printf("請輸入要跳過的號碼 (1〜10): ");
scanf("%d", &num);
for(int i = 1; i <= 10; i++) {
if(i == num) {
continue; // 略過指定號碼
}
printf("%d ", i);
}
return 0;
}
這個程式會使用continue
語句,略過用戶輸入的數字,僅輸出其他數字。
練習2:在巢狀迴圈中運用continue
語句的程式
請用雙重迴圈輸出i
和j
的組合,但當j
為3時跳過。
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 3) {
continue; // 當j為3時跳過
}
printf("i:%d, j:%dn", i, j);
}
}
return 0;
}
此程式在內層j
為3時執行continue
,可根據條件略過部分處理。
練習3:使用continue
語句進行高效率資料處理
請撰寫一個處理陣列資料的程式,若元素為負數則跳過。
#include <stdio.h>
int main() {
int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
for(int i = 0; i < 10; i++) {
if(data[i] < 0) {
continue; // 跳過負數
}
printf("%dn", data[i]);
}
return 0;
}
本範例用continue
語句略過負數元素,只輸出有效資料,提升處理效率。
7. 總結
continue
語句可用於在循環處理中,於符合特定條件時跳過部分處理,直接進入下一輪,是很實用的控制語句。妥善運用可省略多餘動作,提升程式效率。不過若使用過多,會降低可讀性,因此建議僅在必要時使用,或考慮條件分支及函數等其他手法。
continue
語句的有效使用重點
- 根據條件跳過不必要處理,讓循環控制更高效。
- 避免濫用,僅於需要時使用,以維持程式可讀性。
- 也可考慮替代方案(條件分支或函數),選擇最佳做法。
深化學習建議
若想深入理解continue
語句,建議一併學習其他控制語句(如break
、return
等),理解各自特色和運用情境。另外也可多在實際程式中嘗試continue
語句,加深實作體驗。