1. ホーム
  2. c#

C#で複数のループを一度に抜け出るには?

2023-11-15 04:14:06

質問

ネストしたループがあり、それらをすべて一度に抜けたい場合はどうすればよいでしょうか。

while (true) {
    // ...
    while (shouldCont) {
        // ...
        while (shouldGo) {
            // ...
            if (timeToStop) {
                break; // Break out of everything?
            }
        }
    }
}

PHPでは break はループから抜け出すためのループの数を引数として取ります。このようなことはC#でできるのでしょうか?

のような醜いものはどうでしょうか? goto ?

// In the innermost loop
goto BREAK
// ...
BREAK: break; break; break;

どのように解決するのですか?

ネストしたループを関数に抽出し、breakではなくreturnでどこからでもループから抜けられるようにします。