Два условия: AND и OR
Попасть в клуб нужно:
- Иметь паспорт (условие 1)
- И быть в чёрном списке (условие 2)
Это AND: оба условия должны быть правда одновременно.
А может быть: сходи в кино или в парк. Это OR: хотя бы одно из двух.
AND (&&): оба сразу
Вспомни клуб из прошлого урока. Теперь там два правила:
- Паспорт должен быть настоящим
- Список VIP-клиентов (не чёрный!)
Оба условия должны быть правда одновременно:
if (паспорт_настоящий && в_списке_VIP) {
входи()
}
&& — это AND (и). Значит: оба сразу.
Две переменные. Паспорт настоящий (true) И он в списке VIP (true).
Запомни: && требует, чтобы оба были правда.
AND: одно условие ложь
Но тебя нет в списке VIP (in_vip = false). Что будет?
Первое условие true, но второе false.
Видишь? Даже если одно условие true, если второе false — весь && становится false.
Правило для &&:
- true && true = true (оба правда ✓)
- true && false = false (одно неправда ✗)
- false && true = false (одно неправда ✗)
- false && false = false (оба неправда ✗)
OR (||): хотя бы одно
Теперь другой сценарий: сегодня выходной, и ты можешь:
- Или пойти в кино
- Или пойти на пляж
Неважно какое из двух выберешь — оба варианта приносят счастье.
if (идёшь_в_кино || идёшь_на_пляж) {
happy()
}
|| — это OR (или). Значит: хотя бы одно из двух.
Первое условие false (в кино не идёшь), но второе true (на пляж идёшь).
Заметь: у тебя только один вариант true, но || уже happy!
Правило для ||:
- true || true = true (оба правда ✓)
- true || false = true (одного достаточно ✓)
- false || true = true (одного достаточно ✓)
- false || false = false (ничего нет ✗)
Проверь
Что выведется?
int age = 20;
bool has_money = true;
if (age >= 18 && has_money) {
cout << "Bought";
} else {
cout << "Can't buy";
}
Ещё:
Что выведется?
int age = 15;
bool has_money = true;
if (age >= 18 && has_money) {
cout << "Bought";
} else {
cout << "Can't buy";
}
OR — ещё:
Что выведется?
bool car = false;
bool bike = false;
if (car || bike) {
cout << "Go";
} else {
cout << "Walk";
}
Реальный пример: вход на концерт
Можешь попасть на концерт, если:
- Возраст 16+ И деньги есть
int age = 17;
bool has_ticket = true;
if (age >= 16 && has_ticket) {
cout << "Welcome to concert!";
} else {
cout << "Not allowed";
}
Разбор:
- age = 17, что больше 16? Да (true)
- has_ticket = true? Да
- true && true = true
- Результат: "Welcome to concert!"
А если возраст 15?
- age = 15, что больше 16? Нет (false)
- false && true = false
- Результат: "Not allowed"
Сложнее: OR с AND
Можешь поступить в университет, если:
- (Сдал ЕГЭ НА 80+) ИЛИ (Призёр олимпиады)
int ege_score = 85;
bool olympiad_winner = false;
if (ege_score >= 80 || olympiad_winner) {
cout << "You're in!";
} else {
cout << "Try again next year";
}
Разбор:
- ege_score >= 80? 85 >= 80? Да (true)
- olympiad_winner? Нет (false)
- true || false = true (одного условия достаточно!)
- Результат: "You're in!"
Итог
&& (AND) — оба должны быть true:
if (condition1 && condition2) { ... }
- true && true = true
- Остальные = false
|| (OR) — хотя бы одно должно быть true:
if (condition1 || condition2) { ... }
- false || false = false
- Остальные = true
Запомни эти три сценария:
- Паспорт И в VIP → нужны оба → AND
- Кино ИЛИ пляж → выбери что-то одно → OR
- Возраст И деньги → нужны оба → AND
В следующем уроке: вложенные условия — if внутри if!