Реализует логическую структуру выбор одного из многих путей решения.
switch(целочисленное выражение)
{
case выражение 1:оператор 1;
............................
case выражение N:операторы N;
break;
default:оператор_default;
}
Выражение 1...Выражение N - константные выражения, значение которых может принимать целочисленное выражение.
Порядок работы: Вычисляется значение целочисленного выражения, которое затем последовательно сравнивается со значениями выражений 1...выражений N. При совпадении выполняется соответствующая группа операторов. И при наличии break управление передается следующему за switch оператору. если break в данной группе операторов отстутствует, то выполняются операторы всех последующих групп, до тех пор пока не встретится break или до конца оператора switch. если целочисленное выражение не совпало ни с одним значением, то выполняется группа операторов default, если она как таковая присутствует. Значения константных выражений совпадать не могут. Для одной группы операторов можно определить несколько значений. Каждое такое значение записывается со своим case.
Задача.
Дано целое число, определяющее номер месяца в году. Вывести на экран количество дней в этом месяце.
Решение:
#include <stdlib>
void main()
{
int month,days,year;
printf("Введите число месяца:"); scanf("%d",&month);
switch
{
case 1,case 3,case 5,case 7,case 8,case 10,case 12:days=31;break;
case 4,case 6,case 9,case 11: days=30;break;
case 2: printf("\nВведите год:");
scanf("%d",&year);
if(year%4==0 && !(year%100==0 && year%400==0)) days=29;
else days=28;break;
default:days=0;
}
if(days!=0) printf("Количество дней в месяце "%d" "Равно %d\n",month,days); else printf("Ошибка!!!");
}
Программирование циклов
Циклом называется многократное повторение одного или нескольких операторов, записанных в программе только один один раз. В языке Си различают три оператора цикла. Логическая структура "Пока выполняется условие - выполняй действие" реализуется оператором цикла while
while(скалярное выражение)
оператор;
Вычисляется скалярное выражение, если его значение отлично от нуля - выполняется оператор и снова вычисляется скалярное выражение. Цикл прекращает работу, когда скалярное выражение станет равным 0, поэтому, во избежании зацикливания, значение скалярного выражение должно изменятся в теле цикла. Если скалярное выражение равно 0 изначально, тело цикла не выполняется ни разу.
Конструкция выполнения действия пока выполняется условие:
do
{
оператор 1;
. . . . . . .
оператор n;
}
while (скалярное_выражение);
Сначала выполняются операторы тела цикла,затем вычисляется скалярное выражение. Если выражение отлично от нуля (то есть оно истинно) снова выполняется тело цикла. Цикл заканчивает работу, когда скалярное выражение равно 0. Во избежании зацикливаний значение выражения должно изменятся в теле цикла. Тело цикла хотя бы один раз выполняется.
Пример:
Дано целое число N. Определить количество цифр в числе. 283542