```run-c
#include <stdio.h>
// Найти максимальное из двух чисел
int main()
{ double a,b;
scanf("%lg%lg",&a,&b);
if(a>=b)
printf("%lg",a);
else
printf("%lg",b);
}
<<
7.1 1.5e20
```
Вложенные операторы ``if`` рекомендуется писать в ``{}``, а несколько последовательных операторов ``if-else`` принято писать с одинаковым отступом:
```run-c
#include <stdio.h>
// Соответствие российских размеров одежды и международных
int main()
{ int s;
scanf("%d",&s);
if(s<=40) {
if(s<=38) printf("X");
printf("XS\n");
}
else if(s<=44)
printf("S\n");
else if(s<=48)
printf("M\n");
else if(s<=52)
printf("L\n");
else if(s<=58)
printf("XL\n");
else
printf("XXL\n");
}
<<
50
```
![float:right;width:400px|](52187.png) Если в качестве условия выполняется сравнение переменной целого или символьного типа с ограниченным набором значений, то можно использовать специальный оператор ``switch``, который выбирает одну из веток, помеченных ``case``.
Каждая ветка должна закончиться оператором ``break``, иначе выполнение перейдет на операторы для следующей ветки. Компилятор может выдавать предупреждения в случае отсутствия ``break``, но можно указать ``[[fallthrough]]`` для их подавления.
```run-c
#include <stdio.h>
// Соответствие российских размеров одежды и международных
int main()
{ int s;
scanf("%d",&s);
switch(s) {
case 38:
printf("X");
[[fallthrough]];
case 40:
printf("XS\n");
break;
case 42:
case 44:
printf("S\n");
break;
case 46:
case 48:
printf("M\n");
break;
case 50:
case 52:
printf("L\n");
break;
case 54:
case 56:
case 58:
printf("XL\n");
break;
default:
printf("XXL\n");
}
<<
50
```