Мой цикл do while выполняется только один раз

Я сделал пример кода в с.

do
{switch(i)
{

case 1:
{
cout<< "1\n";
break;

}
case 2:
{
cout<< "1\n";
break;
}
case 3:
{
continue;
}}
}while (0);

Здесь, в этом коде, если значение i равно 3, тогда я хочу перезапустить цикл do while, что приведет к бесконечному циклу. Но, к сожалению, цикл не выполняется снова. Что будет причиной этого.?
Я проверил код сборки в Visual Studio того же кода и обнаружил, что в сборке нет оператора JMP для оператора продолжения внутри switch -case.

0

Решение

while (0) означает, что он выпадет из нижней части петли. Даже если у вас есть continue состояние восстановлено

4

Другие решения

Когда вы делаете continue внутри do-while цикл, он подскакивает при оценке внизу, что всегда ложно в вашем случае.

3

Другие ответы объясняют continue но из ваших комментариев видно, что вы понимаете, как это работает.

если значение i равно 3, то я хочу перезапустить цикл do while, что приведет к бесконечному циклу

Код работает так, как вы его описали — он переходит в состояние «время» на i==3, Разница лишь в том, что если вы хотите бесконечный цикл, вам нужно while(1) не while(0),

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector