Найти в Дзене
D21nk Master

Не все любят if else

В предыдущей статье мы изучили несколько новых функций и написали наконец полезную программу.В конце статьи я написал,что это далеко не самый лучший код.Сегодня мы от части это исправим,освоив новый оператор switch.

Switch очень похож на if else,с несколькими отличиями:

1)В логическом сравнении может быть лишь один элемент.То есть строку в него не вставить.

2)Более компактная запись.Это увидите сами.

3)Слегка отличающийся синтаксис.

Давайте уже рассмотрим его наконец:

switch(a)//сам оператор и переменная,которую будем сравнивать
{ //тело обязательно
case 10: //после слова case предполагаемое значение if(a==10)
printf("a=10\n"); //выполнение условия в этом случае
break; //если не поставить break-условия будут выполняться дальше
//можно записывать и так:
case 20:printf("a=20\n");break;
default: //все остальные
printf("Something else\n");
//тут break не обязателен
}

Теперь какой-нибудь пример в коде,чтобы закрепить:

#include <stdio.h>
void main()
{
char a=0;
printf("Enter a:");
scanf("%d",&a);
switch(a)
{
case 20:printf("Twenty\n");break;
case 10:printf("Ten\n");break;
case 50:printf("Fifty\n");break;
default:
printf("I don't know what is than!");
}
}

Можно использовать switch и без break,если у нас два условия на одно действие:

switch(a)
{
case 10:
case 20:printf("It's ten on twenty\n");break;
}

В этом случае первое условие не увидит точки остановки и выполнит следующее действие.

Домашнее задание на сегодня:переписать программу по тренировке памяти с оператором switch.Хочу вас слегка приободрить.Не бойтесь ошибаться,я ещё ни одной программы не написал без ошибок за 5 лет,но чем больше опыт,тем меньше ошибок.Желаю удачи!

Хочешь читать весёлые и познавательные статьи раньше всех?Подписывайся на мой телеграмм-канал.