跳轉至標號處:
bool done = false;
startPoint:
// do some stuff
if (!done) goto startPoint; // 循環
// loop over, moving on...
不需大括號,標號與 goto 間所有程式碼皆執行。
goto 被視為不良陳述句:while/do-while 皆可替代。優秀 C++ 程式設計師極少用。若從其他語言轉入,會發現 C++ 結構讓 goto 顯多餘。
控制迴圈執行流程的關鍵字。
bool done = false;
while (!done) {
// some code
bool error = SomeFunction();
if (error) continue; // 跳至迴圈底部,下一次迭代
// 僅在無錯誤時執行
}
int index = -1;
int searchNumber = 50;
for (int i = 0; i < numElements; i++) {
if (myArray[i] == searchNumber) {
index = i;
break; // 找到即跳出
}
}
if (index != -1)
cout << "Number found at index " << index << endl;
else
cout << "Number not found in array." << endl;
根據運算式結果執行多個程式碼區塊之一。運算式可以是變數、函式回傳值或任意有效 C++ 運算式。
switch (amountOverSpeedLimit) {
case 0:
fine = 0; break;
case 10:
fine = 20; break;
case 15:
fine = 20; break;
case 20:
case 25:
case 30:
fine = amountOverSpeedLimit * 10; break;
default:
fine = GoToCourt();
jailTime = GetSentence();
}
amountOverSpeedLimitcase 測試運算式值:等於 0 → 罰鍰 0;等於 10 → 罰鍰 20 等。break 跳出 switch 區塊:找到符合情況,其餘忽略。default:無符合情況時執行。關鍵點:case 20/25/30 無 break 會貫通執行同一區塊(刻意設計)。