Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:如何决定循环是否继续?_C++_Loops_For Loop_While Loop_Goto - Fatal编程技术网

C++ C++;:如何决定循环是否继续?

C++ C++;:如何决定循环是否继续?,c++,loops,for-loop,while-loop,goto,C++,Loops,For Loop,While Loop,Goto,我嵌套了do-while、while和for循环 有没有办法决定“继续”哪个循环?各种各样的解决方案都很好(不仅仅是goto…)谢谢 while (foo==true) // loop1 { do { for(int i=0; i<someNumber ; i++) // loop3 { if( soo==1) { <CONTINUE_TO_LOOP1> }

我嵌套了do-while、while和for循环

有没有办法决定“继续”哪个循环?各种各样的解决方案都很好(不仅仅是goto…)谢谢

while (foo==true) // loop1
{

   do
   {
      for(int i=0; i<someNumber ; i++) // loop3
      {

         if( soo==1)
         {
             <CONTINUE_TO_LOOP1>
         }
         else if( soo==2 )
         {
             <CONTINUE_TO_LOOP2>
         }
         else if( soo==3 )
         {
             <CONTINUE_TO_LOOP3>
         }

      }

   } while (moo==true) //loop2    

}
while(foo==true)//loop1
{
做
{

对于(int i=0;iCONTINUE\u TO\u LOOP3简单:
CONTINUE

继续循环2容易:
break

继续循环这是一个有趣的循环:

  • 如果不使用四个字母的单词
    goto
  • 或者在loop2周围放置一个试扣,然后用一个提升器离开
  • 或者假设loop1的结尾和loop2的结尾之间没有代码:
    moo=false;
    中断;

    • 也许你可以做这项工作

      while (foo==true) // loop1
      {
      
         do
         {
            for(int i=0; i<someNumber ; i++) // loop3
            {
      
               if( soo==1)
               {
                    break;//<CONTINUE_TO_LOOP1>
               }
               else if( soo==2 )
               {
                   break;//<CONTINUE_TO_LOOP2>
               }
               else if( soo==3 )
               {
                  continue;//<CONTINUE_TO_LOOP3>
               }
            }
            if( soo==1)
            {
               break;//<CONTINUE_TO_LOOP1>
            }
            else if( soo==2 )
            {
                continue;//<CONTINUE_TO_LOOP2>
            }
         } while (moo==true) //loop2    
         if( soo==1)
         {
             continue;//<CONTINUE_TO_LOOP1>
         } 
      }
      
      while(foo==true)//loop1
      {
      做
      {
      
      对于(int i=0;i,有一些重组,没有goto:

      bool loop3()
      {
          for (int i=0; i < someNumber ; i++) {
              if(soo == 1) {
                  return false;
              } else if(soo == 2) {
                  return true;
              } else if(soo == 3) {
                  continue;
              }
          }
          return true;
      }
      

      我提倡无条件分支到表达性标签。其他解决方案将花费额外的条件分支和可能的状态变量,灵活性较低,可读性较差。

      继续;
      也许?继续只会将您带到父循环。它意味着“循环3”。尽可能避免嵌套控件结构。解决方案二:返工logic@Jessica
      break
      您是否将其放入下一个外部循环。在那里,您可能需要另一个条件来决定再次
      break
      ,或
      继续
      。事实上,例外是另一种方式。我可以知道它被否决的原因吗?此解决方案将urely工作和我已经提到了它的工作。我还主张“转到被认为有害的声明”被认为有害。
      while (foo == true) // loop1
      {
         do
         {
             if (loop3() == false) {
                 break;
             }
         } while (moo == true) //loop2    
      }