6

こんにちは、私は過去 1 時間、このループから抜け出そうと試みていました。私のアプリケーションは一連の行を読み取り、それを分析してから、記述された変数を出力します。行がどのように見えるかの例 (. は含まれていません):

  • 10c = 9+3
  • 20 a = c+1
  • 30 プリント c
  • 40 後藤 20
  • 50エンド

40行目に到達すると、期待どおり20行目に移動しますが、すでに40行目に一度行ったので、50行目に移動したいです。この部分の私のコードは次のとおりです。

while(booleanValue)
{
    if(aString.substring(0, 4).equals("goto"))
    {
        int chosenLine = Integer.parseInt(b.substring(5));
        if(inTheVector.contains(chosenLine))
        {
            analizeCommands(inTheVector.indexOf(chosenLine));
            i++;
        }
        else
        {
            System.ou.println("Line Was Not Found");
            i++;
        }
    }

    else if(aString.substring(0, 3).equals("end"))
        {
            System.out.println("Application Ended");
            booleanValue = false;
        }
}
4

2 に答える 2

7

break条件が満たされたら、ステートメントを使用してループから完全に抜け出します。ループの現在の反復のみを停止するため、使用する Pol0nium の提案はcontinue正しくありません。

while(foo)
{
    if(baz)
    {
        // Do something
    }
    else
    {
        // exit condition met
        break;
    }
}

以上のことから、オブザーバー (後でコードを再確認する自分自身) が簡単にフローをたどることができるように、クリーンなエントリ ポイントとエグジット ポイントが必要な場合は、適切なフォームが必要です。while ループ自体を制御するブール値を変更することを検討してください。

while(foo)
{
    if(baz)
    {
        // Do something
    }
    else
    {
        // Do something else
        foo = false;
    }
}

何らかの理由で、while ループを制御するブール値に触れることができない場合は、while を制御するために特別にフラグを使用して条件を合成するだけで済みます。

while(foo && bar)
{
    if(baz)
    {
        // Do something
    }
    else
    {
        // Do something else
        bar = false;
    }
}
于 2013-04-29T00:44:26.877 に答える
0

コードをそのまま使用booleanValueして、do-while ループに切り替えることができます。

do {
 // ... existing code
} while (booleanValue);

ただし、特定の質問に答えるには、いつでも javabreakキーワードを使用できます。キーワードは、ループ ブロックのcontinue残りをスキップして、別のループ反復に入るという意味です。

これを他のチェックの前に置くと、すぐにループを終了します。

if(aString.substring(0, 3).equals("end")) {
    break;
}

追加のヒントとして、substring() の代わりにString.contains("end")またはString.endsWith("end")を使用することをお勧めします。このように、1 桁または 3 桁 (またはそれ以上) の数字が使用されている場合でも、コードは機能します。

于 2013-04-29T00:52:25.380 に答える