C++でbreak文が効かない場合の解決方法は何ですか。

C++では、breakステートメントは通常、ループやswitchステートメント内で使用され、現在のループやswitchステートメントを終了するために使われます。

C++でbreak文が機能しない場合、次のいくつかの理由が考えられます:

  1. ループやswitch文の中でbreakステートメントを使用していません:breakステートメントが無効にならないように、ループやswitch文の中で使用するようにしてください。
  2. 巣層ループやswitch文: ネストされたループやswitch文でbreak文を使用する場合、現在の内部のループやswitch文からのみ脱出します。外側のループやswitch文から脱出したい場合は、ラベルとgoto文を使用してください。
  3. switch文でbreak文を追加し忘れた場合、各case文の終了時にbreak文を追加しないと、プログラムは次のcase文を実行し続け、break文かswitch文の終了まで処理が続行される可能性があります。

以下是一个示例代码,展示了如何使用标签和goto语句在嵌套循环或switch语句中退出外部循环或switch语句: → 以下は、ラベルとgoto文を使用して、入れ子のループやswitch文から外側のループやswitch文を抜ける方法を示すコード例です。

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (i == 1 && j == 1) {
                goto end; // 跳转到标签end
            }
            cout << i << ", " << j << endl;
        }
    }
    
    end: // 定义标签end
    cout << "End of loop" << endl;
    
    return 0;
}

上記のサンプルコードでは、iとjがそれぞれ1の場合、gotoステートメントを使用してラベルendにジャンプし、外側のループから脱出します。

goto文は可読性を低下させる可能性があるため、一般的には避けることをお勧めします。同じ目的を達成するために他の制御フロー文を使用することをお勧めします。

bannerAds