Break 和 Continue
有時候我們可能會想要中途停止或是跳過迴圈的執行。比如說持續向使用者要求輸入數字直到輸入的數字符合規範,或是如果某條件成立,我們就不執行此次迴圈內的程式碼。
這時候我們就必須利用 break
和 continue
幫我們完成這樣的工作!
總而言之,它們分別有這樣的功能:
break
:當在迴圈內遇到break
時,迴圈會立即中止,並且程式會繼續執行迴圈外的下一條程式碼。continue
:當在迴圈內遇到continue
時,迴圈會跳過回圈內剩餘的程式碼,並強迫開始下一次的循環。
接下來讓我們來分別討論這兩個主題吧!
Break
讓我們直接來看 break
的應用。
在下面的例子中,使用者可以最多輸入 5 個數字,但使用者也可以輸入 -1 讓回圈提前終止。
而程式碼最終會輸出使用者輸入的數字的加總(除了 -1)。
int main() { int sum = 0; // 使用者可以輸入最多 5 個數字 for (int i = 0; i < 5; ++i) { std::cout << "輸入一個數字,或是輸入 -1 結束: "; int num; std::cin >> num; // 如果使用者輸入 -1 則終止迴圈 if (num == -1) break; // 跳出迴圈 // 否則加上結果 sum += num; } // 迴圈被終止後,程式碼仍會繼續執行迴圈下的程式碼 std::cout << "最終加總是: " << sum << std::endl; return 0; }
我們可以看到範例輸出為:
輸入一個數字,或是輸入 -1 結束: 3 輸入一個數字,或是輸入 -1 結束: 2 輸入一個數字,或是輸入 -1 結束: -1 最終加總是: 5
是不是非常好懂呢!
Continue
看完 break
後我們來看什麼是 continue
。
break
讓我們有能力「跳出」迴圈,而 continue
則是讓我們有能力可以「跳過」這一次的迴圈。
讓我們直接來看一個例子:
int main() { for (int i = 1; i <= 20; ++i) { // i 不是 5 的倍數 if (i % 5 != 0) continue; std::cout << i << " 可以被 5 整除" << std::endl; } return 0; }
這個程式非常簡單,就是印出數字 1 到 20 之間可以被 5 整除的數字。
我們可以看到,若不能被 5 整除,那就會執行 continue
,直接跳到迴圈的底部並執行下一次迴圈。
因此以上程式碼的輸出會是:
5 可以被 5 整除 10 可以被 5 整除 15 可以被 5 整除 20 可以被 5 整除
如果我們利用 break
代替 continue
,那麼程式碼什麼也都不會印出來,而且迴圈在執行第一次之後就會被強制終止了!
這就是 break
和 continue
最不一樣的地方。
總結
這章介紹的觀念非常簡單,因此個別用一個簡單的範例讓你們看看實際運行的結果。
這兩個關鍵字在程式中非常容易看到,因為這是用來控制程式碼流程的必要關鍵字!
因此,清楚他們兩個實際運行時所造成的差異非常重要!
那這章就到這裡啦~
如果有學到東西的話歡迎留下五星評價喔!