4

私はこれに似たプログラムを持っています:

switch(x)
{ case 1:

for(i=0; i<10; i++)
{
   if ((i==3) || (i==4) || (i==5) || (i==6) || (i==7))
   {
      if (foobar[i])
         break;    // i am talking about this break
   }
}
...further program
break;   /not this break

が true の場合、プログラムはラベルまたはループfoobar[i]から抜け出しますか?casefor

4

7 に答える 7

1

for ループです。ブレークは、最初の for 、 while 、または switch が見つかるまでバブルアップします。したがって、次のようにプログラムを書くことができます。

switch(x){
    case 1:
        int loopBreaked = 0; //If you want to know if the loop has breaked
        for(int i=0; i<10; i++) {
            if (i <= 7 && i >= 3 && foorbar[i]) {
                loopBreaked = 1;
                break; //breaks the loop
            }
        }
        break; //breaks the switch
}
于 2013-07-26T16:59:07.747 に答える
0

完全を期すために、breakは型の最も内側のステートメントfor do whileまたはから抜け出しswitchます。ifコード ブロックを終了するだけで同じ作業が行われるため、ステートメントを中断する必要はありません。

于 2013-07-26T20:17:14.780 に答える
0

どうですか:

for(i=3; i<=7 && !foobar[i]; i++) {}
于 2013-07-26T18:11:15.837 に答える
0

あなたはループbreakを壊します。forそして、break後で使用する場合は、switch. 次のコード サンプルを検討できます。

for(int i=0;i<len;i++)
{
   for(int j=0;j<len;j++)
   {
     //statements
      break;
    }
//statements
break;
}

内側のループのbreak内側は内側のループを壊し、次のbreakステートメントは外側のループを壊します。あなたのコード サンプルでは、break​​気づいたのはforループ内にあります。したがって、forループは壊れます。

于 2013-07-27T04:34:55.817 に答える