Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to exit nested loops

i have something like

   while(playAgain==true)
   {
      cout<<"new game"<<endl; //i know 'using namespace std;' is looked down upon
      while(playerCard!=21)
      {
          *statements*
          if(decision=='n')
          {
              break
          }
       ...
      }
   }

but that break only breaks out of the first while loop when I want to break out of both of the loops

like image 589
gr33kbo1 Avatar asked Dec 15 '25 12:12

gr33kbo1


1 Answers

Don't cook spaghetti and extract your loops into the function:

void foo(...) {
    while (...) {
        /* some code... */
        while (...) {
            if ( /* this loop should stop */ )
                break;
            if ( /* both loops should stop */ )
                return;
        }
        /* more code... */
    }
}

this decomposition will also yield cleaner code since instead of hundreds of lines of ugly procedural code, you will have neat functions at different levels of abstraction.

like image 78
LihO Avatar answered Dec 17 '25 02:12

LihO