プロが教えるわが家の防犯対策術!

for(…){
if(…){
break;
}
}
と言うコードで、何故かbreak;でループを抜けず、続いているようなのですが、原因はわかりますか。
抽象的でごめんなさい

A 回答 (4件)

ifの条件式次第では抜けてこないこともあり得ます。

    • good
    • 1

break文の直前にprintf文を入れてみてはどうでしょうか。


以下のようにします。

for(…){
if(…){
・・・・
printf("AAA\n");
break;
}
}


もし、AAAが表示されるならif(…)の条件が成立しています。
AAAが表示されないならif(…)の条件が成立していません。
まずは、それで判断してみてください。

追伸:AAAの後に改行(\n)を必ず、付加してください。
printf("AAA");のようにすると、AAAが表示されません。
    • good
    • 0

if の条件が break を実行するための条件を満たしていない。



そんだけの事だろうと思います。
    • good
    • 1

・その break に辿り着けていない


・別にループがあってそのループからは抜けられている
・そのループからは抜けている (ただし外にまだループがある)
・実は switch の中だった
・そこが問題だと勘違いしているだけ
とか, いくつか思い付きはする. まあデバッガでがんばってほしい.
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!