break文は現在のループを抜けるための文である。
よって、
for(;;){ if(1)break; }
だとfor文を抜ける。
for(;;){ for(;;){ if(1)break; } }
だと内側のfor文を抜ける。
が、switch文の場合は例外でswitch文しか抜けない。
for(;;){ switch(hoge){ case 0:break; } printf("breakの後はここにくる"); }
だと、switch文だけ抜けて、for文までは抜けない。
switch(hoge1){ case 0: switch(hoge2){ case 0:break; } printf("breakの後はここにくる"); }
ネスト状態のswitch文だと内側のswitch文だけ抜ける
ややこしくてすぐ忘れるので注意。
・breakは内側のループを抜けるためにある
・switchもループの一種と考える
って覚えておこう。
コメントを残す