首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C++ 語言基礎:goto、break、continue、switch 進階流程控制

     編輯:VC 教學

goto 陳述句

跳轉至標號處:


bool done = false;
startPoint:
// do some stuff
if (!done) goto startPoint; // 循環
// loop over, moving on...

不需大括號,標號與 goto 間所有程式碼皆執行。

goto 被視為不良陳述句:while/do-while 皆可替代。優秀 C++ 程式設計師極少用。若從其他語言轉入,會發現 C++ 結構讓 goto 顯多餘。

break 與 continue

控制迴圈執行流程的關鍵字。

continue:跳過本次迴圈剩餘部分


bool done = false;
while (!done) {
    // some code
    bool error = SomeFunction();
    if (error) continue; // 跳至迴圈底部,下一次迭代
    // 僅在無錯誤時執行
}

break:提前終止迴圈


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;

switch 陳述句:進階 if

根據運算式結果執行多個程式碼區塊之一。運算式可以是變數、函式回傳值或任意有效 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();
}

switch 結構解析

  1. 運算式:amountOverSpeedLimit
  2. case 測試運算式值:等於 0 → 罰鍰 0;等於 10 → 罰鍰 20 等。
  3. break 跳出 switch 區塊:找到符合情況,其餘忽略。
  4. default:無符合情況時執行。

關鍵點:case 20/25/30 無 break 會貫通執行同一區塊(刻意設計)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved