如何从内循环跳到外循环

时间:2014-07-09 12:46:41

标签: java for-loop

以下是我的计划结构:

for(loop1){

  if(condition1)
  {
    for(loop2)
    {
       for(loop3)
       {
         if(condition1_3)
           {
            As condition1_3 is true continue with loop2's next iteration, 
            No need to execute loop3's remaining iteration  
           }
           else
           {
             As condition1_3 is false no need to execute remaining part of loop3 and
             loop 2 but continue with loop1's remaining part i.e. condition1_1
           }
        }
     }
  }
  if(condition1_1)
  {
  some code here
  }
}

我知道我必须使用continuebreak声明,但不明白具体如何? 请告诉我如何实现这种机制?

7 个答案:

答案 0 :(得分:2)

如果我理解您的问题,您可以使用labeled continue

loop1: for (;;) {
  if (condition1) {
    loop2: for (;;) {
      loop3: for (;;) {
        if (condition1_3) {
          continue loop2;
        } else {
          continue loop1;
        }
      }
    }
  }
}

答案 1 :(得分:1)

您可以执行以下操作:

for(loop1){

  if(condition1)
  {
    for(loop2)
    {
       boolean flag=false;
       for(loop3)
       {
         if(condition1_3)
           {
            break; 
           }
           else
           {
             flag=true;
             break;
           }
        }
        if(flag)
          break;
     }
  }
  if(condition1_1)
  {
  some code here
  }
}

答案 2 :(得分:0)

要突破并且不继续使用loop3; if (condition1_3) break;休息;声明只会突破当前循环,而不是它嵌套的循环。

编辑:错过了问题 要打破这两个循环,你可以在两个循环之前和两个循环的末尾都有一个布尔标志if (breakOut) break;这将解决问题

答案 3 :(得分:0)

请执行以下操作 -

for(loop1){
  boolean flag = false;

  if(condition1)
  {
    for(loop2)
    {
       if(flag == true)
         break;

       for(loop3)
       {
         if(condition1_3)
           {    
             break;
           }
           else
           {
              flag = true;
              break;
           }
        }
     }
  }
  if(condition1_1)
  {
  some code here
  }
}

答案 4 :(得分:0)

如果要退出特定循环并检查每个相应的循环是否继续或退出,请设置一个退出标志。

boolean exitLoop2 = false;

for(loop1){

 if(condition1)
 {
    for(loop2)
    {
       for(loop3)
       {
         if(condition1_3)
         {
             //As condition1_3 is true continue with loop2's next iteration, 
             //No need to execute loop3's remaining iteration  
             break;
         }
         else
         {
            //As condition1_3 is false no need to execute remaining part of loop3 and
            //loop 2 but continue with loop1's remaining part i.e. condition1_1
            exitLoop2 = true;
            break;
          }

       }
       if(exitLoop2)
       {
           break;
       }
    }
 }
 if(condition1_1)
 {
    some code here
 }

}

答案 5 :(得分:0)

一个选项是使用变量 - 但你必须考虑正确设置值:

boolean runFor1 = true;
boolean runFor2 = true;
boolean runFor3 = true;
for(loop1 && runFor1)
{
    for(loop2 && runFor2)
    {
       for(loop3 && runFor3)
       {
           setRunForX here to skip/unskip loops
       }
     }
  }
}

答案 6 :(得分:0)

我真的不知道你究竟是什么意思。对我来说,如果满足特定条件,您似乎只想跳出循环。因此,您可以为循环定义标签并使用continue labelLoopX;语句,或者如果loop3,则可以满足condition1_3==true的退出条件。如果loop3loop2condition1_3==false的退出条件。例如如果loop3看起来像这样for ( int i = 0; i < 10; i++ )

if(condition1_3){
     //do something important
     i=10; //sets i to 10 and condition i < 10 is unsatified
}
else{
     //do some other important stuff
     i=10; //satify loop3's exitcondition
     j=10; //satify loop2's exitcondition
}