Непосредственный выход цикла while в С++

Как выйти из цикла while немедленно, не дойдя до конца блока?

Например,

while (choice != 99)
{
    cin >> choice;
    if (choice == 99)
        //Exit here and don't get additional input
    cin>>gNum;
}

Любые идеи?

Ответ 1

Использовать разрыв?

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    break;
  cin>>gNum;
}

Ответ 2

Используйте break, как таковой:

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    break; //exit here and don't get additional input
  cin>>gNum;
}

Это также работает для циклов и является ключевым словом для завершения предложения switch. Подробнее здесь.

Ответ 3

cin >> choice;
while(choice!=99) {
    cin>>gNum;
    cin >> choice
}

В этом случае вам не нужен разрыв.

Ответ 4

break;.

while(choice!=99)
{
   cin>>choice;
   if (choice==99)
       break;
   cin>>gNum;
}

Ответ 5

Да, перерыв будет работать. Тем не менее, вы можете обнаружить, что многие программисты предпочитают не использовать его, когда это возможно, а скорее используют условный оператор if для выполнения чего-либо еще в цикле (таким образом, не выполняя его и не выходя из цикла)

Что-то вроде этого достигнет того, что вы ищете, не используя перерыв.

while(choice!=99) {
    cin >> choice;
    if (choice != 99) {
        cin>>gNum;
    }
}

Ответ 6

hmm, break?

Ответ 7

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    exit(0);
  cin>>gNum;
}

Поверьте мне, что выйдет из цикла. Если это не работает, ничего не будет. Разумеется, это может быть не то, что вы хотите...

Ответ 8

Yah Im довольно уверен, что вы просто положили

    break;

где вы хотите, чтобы он выходил из

like

    if (variable == 1)
    {
    //do something
    }
    else
    {
    //exit
    break;
    }

Ответ 9

Try

break;

Ответ 10

Вы не должны использовать оператор break для выхода из цикла. Конечно, вы можете это сделать, но это не значит, что вам нужно. Это просто не хорошая практика программирования. Более элегантный способ выхода состоит в следующем:

while(choice!=99)
{
    cin>>choice;
    if (choice==99)
        //exit here and don't get additional input
    else
       cin>>gNum;
}

если выбор - 99, нечего делать, и цикл завершается.