Переключатель/Операторы выбора в C++

Относительно переключателя/оператора выбора в C++ кодируют ниже: "Случай 1" является, очевидно, ложью, поэтому как/почему это вводит цикл с условием продолжения?

#include <iostream>

using namespace std;

int main() {

    int test = 4;

    switch(test) {
        case 1: do {
            case 2: test++;
            case 3: test++;
            case 4: cout << "How did I get inside the do-while loop?" << endl; break;
            case 5: test++;
        } while(test > 0);
        cout << test << endl;
    }
}
13
задан user320723 26 May 2010 в 06:06
поделиться

4 ответа

Это Устройство Даффа , старая, умная техника для прыжка в середину цикла.

18
ответ дан 1 December 2019 в 23:31
поделиться

Switch не оценивает/понимает исходный код. Это просто команда для перехода непосредственно к метке исходного кода case 4

0
ответ дан 1 December 2019 в 23:31
поделиться

Я не тестировал это, но в целом цикл do / while следует вводить, если у вас не реализован оператор break ...

0
ответ дан 1 December 2019 в 23:31
поделиться

Причина, по которой вы попадаете в цикл do-while, заключается в том, что:

Операторы Switch начинают обработку с первой метки. Если он НЕ попадает в оператор break, он будет продолжать последовательно вниз по каждой метке, пока не попадет в одну (в этом случае он завершится), или он прошел через каждую метку и выполнил весь код внутри, а затем завершится.

0
ответ дан 1 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: