1. ホーム
  2. c++

[解決済み] c++で、ある条件(if)が満たされた後にwhileループを再開するにはどうしたらいいですか?[クローズド]

2022-02-26 09:01:47

質問

whileループの中にたくさんのif文があります。プログラムは条件に従ってエラーメッセージを表示しなければなりませんが、複数のエラーがある場合は、それらのうちの1つだけを表示しなければなりません。

どうすればいいですか?

ご質問の内容があまり詳細ではないので、何をお望みなのかが少しわかりにくいのですが。

whileループでエラーが発生した後、次の反復処理に入りたい場合は、whileループの中で continue ステートメントを使用します。

while( something )
{
    if( condition )
    {
        //do stuff
        continue;
    }
    else if( condition 2 )
    {
        //do other stuff
        continue;
    }
    <...>
}

もし、これら以外に何もなければ if がループ内にあり、条件が整数値である場合は switch の代わりに

while( condition )
{
    switch( errorCode )
    {
        case 1:
        //do stuff;
        break;
        case 2:
        //do other stuff;
        break;
        <...>
    }
}

サイクルを完全に再スタートさせたい場合...これは少し難しいですね。この場合 while のループで、条件をその開始時の値に設定すればよい。たとえば、次のようなループがあったとする。

int i = 0;
while( i < something )
{
    //do your stuff
    i++;
}

であれば、次のようにリセットすることができます。

int i = 0;
while( i < something )
{
    //do your stuff
    if( something that tells you to restart the loop )
    {
        i = 0;//setting the conditional variable to the starting value
        continue;//and going to the next iteration to "restart" the loop
    }
}

ただし、これには本当に注意が必要で、誤って無限ループに陥ってしまうことがあります。