0

While ループがあり、その中に try catch ブロックがあります。while ループを中断するには、catch ステートメントに break ステートメントを追加する方法を教えてください。DO-WHILE ループを使用したくないのは、コードを送信するのに数分しかなく、変更を加えてプログラムを壊したくないからです。しかし、後で DO-WHILE ステートメントを使用してコードを変更することを検討します。

while (true) {
try {
// something here
} catch (Exception e) {

// I need to break the forever while loop here
}
}
4

8 に答える 8

8
try {
// something here
    while (true) {
    // While body here.
    }
} catch (Exception e) {

// I need to break the forever while loop here
}
} 

while ループを try catch 本体内に移動できます。これはプログラム的にはまったく同じように動作しますが、すべてのエラーがキャッチされ、do-while は必要ありません。これは見栄えが良く、より意味論的な意味を持ちます。

さらに、catch ブロックに単語を追加するだけbreak;で、ループの実行が停止します。

于 2013-03-12T07:49:22.340 に答える
3

catch ブロックに break ステートメントを入れるだけです。

于 2013-03-12T07:49:01.973 に答える
0

whileループを壊すためにcatchステートメントにbreakステートメントを追加するにはどうすればよいですか?

まさにそれをしてください。breakステートメントにステートメントを追加しcatchます。whileループから抜け出します。

本当の質問ではありません。

于 2013-03-12T09:31:59.593 に答える
0

それはうまくいくでしょう。

ただし、次のような例外があったため、ループを終了する必要があります。

try {
    while (true) {
        // something here
    }
} catch (Exception e) {
    // Do whatever in the catch
} 
于 2013-03-12T07:50:38.773 に答える
0

while ループで最初は true で、try または catch ステートメントのどこでも false に設定するブール変数を導入できます。このようにして、ネストされたループが内部にある場合でも、指定したループを中断できます。

boolean notDone = true;
while(notDone) {
try {
// something here
} catch (Exception e) {
// I need to break the forever while loop here
notDone = false;
}

もちろん、代わりに「完了」ブール値を使用して、反転バージョンを使用できます。これにより、反復ごとに while ループ内で反転を呼び出す必要があります。これは、マイナーなパフォーマンスとコードの読みやすさのトレードオフです。

于 2013-03-12T07:54:16.170 に答える
0

まあ、複数のアプローチがあります

アプローチ 1 - While 条件変数を逆にすることによって

boolean notDone = true;
while(notDone) {
    try {
    // something here
    } catch (Exception e) {             
        notDone = false;
    }
}

アプローチ 2 - break ステートメントの使用

while(notDone) {
    try {
    // something here
    } catch (Exception e) {
        break;
    }
}

アプローチ 3 - catch ブロックを while の外に移動する

try {
        while(notDone) {

        }       
    } catch (Exception e) {

    }       
于 2013-03-12T08:02:14.623 に答える
-1

ループに名前を付けてブレークするだけです
。たとえば

Lable:
while (true) {
    try {
        // something here

    } catch (Exception e) {
        //  I need to break the forever while loop here
        break Lable;
    }
}
于 2013-03-12T07:56:57.123 に答える