В конструкции switch-case
тело switch
является просто нормальным или составным оператором, который может содержать любые другие допустимые операторы c. Он также может содержать case
или default
метки.
И элемент управления переходит к соответствующей метке регистра в зависимости от значения выражения, операторы в теле переключателя выполняются одна за другой, как и любая другая область действия {
}
, если не встречается break
.
Например, рассмотрим следующую простую тестовую программу :
#include<stdio.h>
int main()
{
int i = 6;//5,10;
switch(6)
{
case 10:
printf("\nIn case 10");
case 11:
printf("\nIn case 11");
case 12:
printf("\nIn case 12");
break;
case 5:
printf("\nIn case 5");
break;
case 6:
printf("\nIn case 6");
default:
printf("\nIn Default");
}
return 0;
}
Рассмотрим 3 значения для управляющего выражения i
в операторе switch
:
5
6
10
Результирующие выходы следующие:
Сценарий 1: i = 6
In case 6
In Default
Сценарий 2: i = 10
In case 10
In case 11
In case 12
Сценарий 3: i = 5
In case 5
Обратите внимание, что в каждом из приведенных выше сценариев, когда встречается соответствующая метка case
, операторы выполняются последовательно до тех пор, пока не встретится break
, тем самым приводя к заключению, которое является первым утверждением в ответе.