Общая форма записи

 

 

switch( <целое выражение> ) { case <константное выражение1>:  
<оператор1>; break;
case <константное выражение2>: <оператор2>; break;
default: } <оператор п+1>;

Оператор выполняется следующим образом:

1) вычисляется выражение в скобках оператора switch;

2) полученное значение сравнивается с метками (константными выражениеми) в опциях case;

3) сравнение производится до тех пор, пока не будет найдена метка, соответствующая данному значению, после этого выполнится оператор соответствующей ветви;

4) если соответствующая метка не найдена, то выполнится оператор в опции default.

Альтернатива default может отсутствовать, тогда не будет произведено никаких действий.

Опция break осуществляет выход из оператора switch и переход к следующему за ним оператору. При отсутствии опции break будут выполняться все операторы, начиная с помеченного данной меткой и кончая оператором в опции default.

Константые выражения (выражения, операнды которого константы) должны быть целого типа (включая char).


Пример.Разработать программу, определяющую день недели по его введенному номеру. Программа должна реагировать на неверно введенный номер дня недели.

main

int i;

printf("пВведите номер дня недели: "); scanf("%u", &i); switch( i )

{

case 1: printf("n Понедельник."); break; case 2: printf("n Вторник."); break;

case 7: printf("n Воскресенье."); break; default:


{


printf("n Неверно введен "); printf("номер дня недели.");


Операторы цикла

В языке Си реализованы три вида операторов цикла:

1) while — цикл с предусловием;

2) do...while — цикл с постусловием;

У) for — цикл с заданным числом повторений (цикл с предусловием).

Цикл while