Относительно переключателя/оператора выбора в 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;
}
}
Это Устройство Даффа , старая, умная техника для прыжка в середину цикла.
Switch не оценивает/понимает исходный код. Это просто команда для перехода непосредственно к метке исходного кода case 4
Я не тестировал это, но в целом цикл do / while следует вводить, если у вас не реализован оператор break ...
Причина, по которой вы попадаете в цикл do-while, заключается в том, что:
Операторы Switch начинают обработку с первой метки. Если он НЕ попадает в оператор break, он будет продолжать последовательно вниз по каждой метке, пока не попадет в одну (в этом случае он завершится), или он прошел через каждую метку и выполнил весь код внутри, а затем завершится.