Как вызвать 2 раза break; внутри switch?

104
30 мая 2021, 23:40

Не могу красиво выйти из цикла используя break внутри switch, успевает сработать только один раз. пробовал еще return; но он выкидывает в такую далину куда мне не надо.

for (;;){
          switch (a)
          {
            case 0: a++; break;
            case 1: a++; break;
            case 2: a++; break;
            case 3: a++; break;
            case 4: break; break; // печально но не работает :(
            default:
                break;
          }
        }
Answer 1
for (;;)
{
  switch (a)
  {
    case 0: a++; break;
    case 1: a++; break;
    case 2: a++; break;
    case 3: a++; break;
    case 4:      goto DONE;
  }
}
DONE: ; // точка с запятой нужна только если потом идёт фигурная скобка
Answer 2

Лучше сразу указать условие выхода из цикла:

while (a != 4)
{
    switch (a)
    {
    case 0: a++; break;
    case 1: a++; break;
    case 2: a++; break;
    case 3: a++; break;     
    }
}

Или вообше без switch :

for (;;)
{
    if (a == 4) break;  
    ++a;
}
READ ALSO
При работе перепоняется vector: “vector subscript out of range”

При работе перепоняется vector: “vector subscript out of range”

Около месяца изучаю C++, несколько дней пытаюсь отладить кодОшибка, наверное, очевидная для бывалых, всё никак не находится

90
Вывод значения переменной из функции

Вывод значения переменной из функции

Хочу, чтобы выводилось значение переменной aЕсли введенное число больше 5 - вывести 5, иначе 4

80
GDB процесс дебага

GDB процесс дебага

В Microsoft Visual Studio есть встроенный дебаггер, который позволяет дизассемблировать выполняемый файл и ходить по строчкам ассемблера пошагово

96
Анимация ухода сайтбара

Анимация ухода сайтбара

Есть сайтбар , его выдвижение и задвижение нужно анимировать , но с помощью свойства animation получается только первое (анимация выдвижения)...

106