Логические операторы: и
Иногда одного условия мало. «Куплю кроссовки, если они стоят меньше 2000 и мне подходят по размеру» состоит из двух условий, соединённых словом «и». В C это оператор && (два символа & подряд). Читайте его как «и»:
int price = 1800;
int size = 42;
if (price < 2000 && size == 42) {
printf("Куплю кроссовки\n");
}Программа выведет:
Куплю кроссовки&& — это логический оператор: он соединяет два условия в одно. Составное условие истинно, только если истинны обе части. Если хотя бы одна ложна, ложно и всё условие:
true && true— этоtruetrue && false— этоfalsefalse && true— этоfalsefalse && false— этоfalse
Можно соединять и больше условий подряд: a && b && c истинно, только если истинны все три.
Каждая часть должна быть полным сравнением. «Возраст от 13 до 19» — это age >= 13 && age <= 19. Если сократить, как мы говорим, до age >= 13 && <= 19, компилятор сообщит error: expected expression, потому что не знает, что должно сравнивать <= 19. Математическая запись 13 <= age <= 19 тоже не работает. Для неё компилятор сообщит error: chained comparison 'X <= Y <= Z' does not behave the same as a mathematical expression: цепочка сравнений в C означает не то, что в математике.
Задание
- 1
В игре следующий уровень открывается, когда у вас не меньше
100очков и одновременно не меньше3звёзд. Вместо комментария напишите инструкциюif, которая выводитСледующий уровень открыттолько еслиpointsне меньше 100 иstarsне меньше 3. Соедините два сравнения с помощью&&. - 2
Добавьте ветку
else, которая выводитНужно 100 очков и 3 звезды. Затем изменитеstarsна2. Одной ложной части достаточно, чтобы всё условие стало ложным, поэтому программа выведетНужно 100 очков и 3 звезды.