синтаксис, блоки else/elif и примеры
При изучении программирования в качестве практики часто приходится создавать «идеальные программы», которые в реальном мире работают совсем не так.
Иногда, например, нужно исполнить ряд инструкций только в том случае, если соблюдаются определенные условия. Для обработки таких ситуаций в языках программирования есть операторы управления. В дополнение к управлению потоком выполнения программы эти операторы используются для создания циклов или пропуска инструкций, когда какое-то условие истинно.
Операторы управления бывают следующих типов:
- Оператор-выражение if
- Оператор-выражение if-else
- Оператор-выражение if-elif-else
- Цикл while
- Цикл for
- Оператор-выражение break
- Оператор-выражение continue
В этом уроке речь пойдет о первых трех операторах управления.
Оператор if
Синтаксис оператора if следующий:
if condition:
<indented statement 1>
<indented statement 2>
<non-indented statement>
Первая строчка оператора, то есть if condition
: — это условие if, а condition
— это логическое выражение, которое возвращает True
или False
. В следующей строке блок инструкций. Блок представляет собой одну или больше инструкций. Если он идет следом за условием if, такой блок называют блоком if.
Стоит обратить внимание, что у каждой инструкции в блоке if одинаковый отступ от слова if. Многие языки, такие как C, C++, Java и PHP, используют фигурные скобки ({}
), чтобы определять начало и конец блока, но в Python используются отступы.
Каждая инструкция должна содержать одинаковое количество пробелов. В противном случае программа вернет синтаксическую ошибку. В документации Python рекомендуется делать отступ на 4 пробела. Такая рекомендация актуальная для и для этого .
Как это работает:
Когда выполняется инструкция if, проверяется условие. Если условие истинно, тогда все инструкции в блоке if выполняются. Но если условие оказывается неверным, тогда все инструкции внутри этого блока пропускаются.
Инструкции следом за условием if, у которых нет отступов, не относятся к блоку if. Например, <non-intenden statement>
— это не часть блока if, поэтому она будет выполнена в любом случае.
Например:
number = int(input("Введите число: "))
if number > 10:
print("Число больше 10")
Первый вывод:
Введите число: 100
Число больше 10
Второй вывод:
Введите число: 5
Стоит обратить внимание, что во втором случае, когда условие не истинно, инструкция внутри блока if пропускается. В этом примере блок if состоит из одной инструкции, но их может быть сколько угодно, главное — делать отступы.
Рассмотрим следующий код:
number = int(input("Введите число: ")) if number > 10: print("первая строка") print("вторая строка") print("третья строка") print("Выполняется каждый раз, когда вы запускаете программу") print("Конец")
Первый вывод:
Введите число: 45
первая строка
вторая строка
третья строка
Выполняется каждый раз, когда вы запускаете программу
Конец
Второй вывод:
Введите число: 4
Выполняется каждый раз, когда вы запускаете программу
Конец
Здесь важно обратить внимание, что только выражения на строках 3, 4 и 5 относятся к блоку if. Следовательно, они будут исполнены только в том случае, когда условие if будет истинно. Но инструкции на строках 7 и 8 выполнятся в любом случае.
Консоль Python реагирует иначе при использовании операторов управления прямо в ней. Стоит напомнить, что для разбития выражения на несколько строк используется оператор продолжение (
). Но в этом нет необходимости с операторами управления. Интерпретатор Python автоматически активирует мультистрочный режим, если нажать Enter после условия if. Например:
>>>
>>> n = 100
>>> if n > 10:
...
После нажатия Enter на строке с условием if командная строка преобразуется с >>>
на …
. Консоль Python показывает …
для многострочных инструкций. Это значит, что начатая инструкция все еще не закончена.
Чтобы закончить инструкцию if, нужно добавить еще одну инструкцию в блок if:
>>> >>> n = 100 >>> if n > 10: ... print("n v 10") ...
Python не будет автоматически добавлять отступ. Это нужно сделать самостоятельно. Закончив ввод инструкции, нужно дважды нажать Enter, чтобы исполнить инструкцию. После этого консоль вернется к изначальному состоянию.
>>>
>>> n = 100
>>> if n > 10:
... print("n больше чем 10")
...
n больше чем 10
>>>
Все эти программы заканчиваются внезапно, не показывая ничего, если условие не истинно. Но в большинстве случаев пользователю нужно показать хотя бы что-нибудь. Для этого используется оператор-выражение if-else.
Оператор if-else
Оператор if-else исполняет одну порцию инструкций, если условие истинно и другое — если нет. Таким образом этот оператор предлагает два направления действий. Синтаксис оператора if-else следующий:
if condition:
statement 1
statement 2
and so on
else:
statement 3
statement 4
and so on:
Как это работает:
Когда оператор if-else исполняется, условие проверяется, и если оно возвращает True
, когда инструкции в блоке if исполняются. Но если возвращается False
, тогда исполняются инструкции из блока else.
Пример 1: программа для расчета площади и длины окружности круга.
radius = int(input("Введите радиус: ")) if radius >= 0: print("Длина окружности = ", 2 * 3.14 * radius) print("Площадь = ", 3.14 * radius ** 2) else: print("Пожалуйста, введите положительное число")
Первый вывод:
Введите радиус: 4
Длина окружности = 25.12
Площадь = 50.24
Второй вывод:
Введите радиус: -12
Пожалуйста, введите положительное число
Теперь программа показывает корректный ответ пользователю, даже если условие if не является истинным. Это и требуется.
В инструкциях if-else нужно следить за тем, чтобы условия if и else находились на одном уровне. В противном случае программа вернет синтаксическую ошибку. Например:
radius = int(input("Введите радиус: ")) if radius >= 0: print("Длина окружности = ", 2 * 3.14 * radius) print("Площадь = ", 3.14 * radius ** 2) else: print("Пожалуйста, введите положительное число")
Если попробовать запустить эту программу, то появится следующая ошибка:
$ python3 if_and_else_not_aligned.py
File "if_and_else_not_aligned.py", line 6
else:
^
SyntaxError: invalid syntax
$
Для исправления проблемы нужно вертикально выровнять if и else
Другой пример:
Пример 2: программа для проверки пароля, введенного пользователем.
password = input("Введите пароль: ")
if password == "sshh":
print("Добро пожаловать")
else:
print("Доступ запрещен")
Первый вывод:
Введите пароль: sshh
Добро пожаловать
Второй вывод:
Введите пароль: abc
Доступ запрещен
Вложенные операторы if и if-else
Использовать операторы if-else можно внутри других инструкций if или if-else. Это лучше объяснить на примерах:
Оператор if внутри другого if-оператора
Пример 1: программа, проверяющая, имеет ли студент право на кредит.
gre_score = int(input("Введите текущий лимит: "))
per_grad = int(input("Введите кредитный рейтинг: "))
if per_grad > 70:
if gre_score > 150:
print("Поздравляем, вам выдан кредит")
else:
print("Извините, вы не имеете права на кредит")
Здесь оператор if используется внутри другого if-оператора. Внутренним называют вложенный оператором if. В этом случае внутренний оператор if относится к внешнему блоку if, а у внутреннего блока if есть только одна инструкция, которая выводит “Поздравляем, вам выдан кредит”.
Как это работает:
Сначала оценивается внешнее условие if, то есть per_grad > 70
. Если оно возвращает True
, тогда управление программой происходит внутри внешнего блока if. Там же проверяется условие gre_score > 150
. Если оно возвращает True
, тогда в консоль выводится "Congratulations you are eligible for loan"
. Если False
, тогда программа выходит из инструкции if-else, чтобы исполнить следующие операции. Ничего при этом не выводится в консоль.
При этом если внешнее условие возвращает False
, тогда выполнение инструкций внутри блока if пропускается, и контроль переходит к блоку else (9 строчка).
Первый вывод:
Введите текущий лимит: 160
Введите кредитный рейтинг: 75
Поздравляем, вам выдан кредит
Второй вывод:
Введите текущий лимит: 160
Введите кредитный рейтинг: 60
Извините, вы не имеете права на кредит
У этой программы есть одна маленькая проблема. Запустите ее заново и введите gre_score
меньше чем 150
, а per_grade
— больше 70
:
Вывод:
Введите текущий лимит: 140
Введите кредитный рейтинг: 80
Программа не выводит ничего. Причина в том, что у вложенного оператора if нет условия else. Добавим его в следующем примере.
Пример 2: инструкция if-else внутри другого оператора if.
gre_score = int(input("Введите текущий лимит: "))
per_grad = int(input("Введите кредитный рейтинг: "))
if per_grad > 70:
if gre_score > 150:
print("Поздравляем, вам выдан кредит")
else:
print("У вас низкий кредитный лимит")
else:
print("Извините, вы не имеете права на кредит")
Вывод:
Введите текущий лимит: 140
Введите кредитный рейтинг: 80
У вас низкий кредитный лимит
Как это работает:
Эта программа работает та же, как и предыдущая. Единственное отличие — у вложенного оператора if теперь есть инструкция else. Теперь если ввести балл GRE меньше, чем 150, программа выведет: “У вас низкий кредитный лимит”
При создании вложенных операторов if или if-else, всегда важно помнить об отступах. В противном случае выйдет синтаксическая ошибка.
Оператор if-else внутри условия else
Пример 3: программа для определения оценки студента на основе введенных баллов.
score = int(input("Введите вашу оценку: "))
if score >= 90:
print("Отлично! Ваша оценка А")
else:
if score >= 80:
print("Здорово! Ваша оценка - B")
else:
if score >= 70:
print("Хорошо! Ваша оценка - C")
else:
if score >= 60:
print("Ваша оценка - D. Стоит повторить материал.")
else:
print("Вы не сдали экзамен")
Первый вывод:
Введите вашу оценку: 92
Отлично! Ваша оценка А
Второй вывод:
Введите вашу оценку: 72
Хорошо! Ваша оценка - C
Третий вывод:
Введите вашу оценку: 56
Вы не сдали экзамен
Как это работает:
Когда управление программой переходит к оператору if-else, проверяется условие на строке 3 (score >= 90
). Если оно возвращает True
, в консоль выводится “Отлично! Ваша оценка А”. Если значение неверное, управление переходит к условию else
на 5 строке. Теперь проверяется условие score >= 80
(6 строка). Если оно верное, тогда в консоли выводится “Здорово! Ваша оценка — B”.
В противном случае управление программой переходит к условию else
на 8 строке. И здесь снова имеется вложенный оператор if-else. Проверяется условие (score >= 70
). Если оно истинно, тогда в консоль выводится “Хорошо! Ваша оценка — C”. В противном случае управление переходит к блоку else
на 11 строке. В конце концов, проверяется условие (score >= 60
). Если оно возвращает True
, тогда в консоль выводится “Ваша оценка — D. Стоит повторить материал.” Если же False
, тогда в консоли будет “Вы не сдали экзамен”. На этом этапе управление переходит к следующим инструкциям, написанным после внешнего if-else.
Хотя вложенные операторы if-else позволяют проверять несколько условий, их довольно сложно читать и писать. Эти же программы можно сделать более читабельными и простыми с помощью if-elif-else.
Оператор if-elif-else
Оператор if-elif-else — это альтернативное представление оператора if-else, которое позволяет проверять несколько условий, вместо того чтобы писать вложенные if-else. Синтаксис этого оператора следующий:
if condition_1:
statement
statement
more statement
elif condition_2:
statement
statement
more statement
elif condition_3:
statement
statement
more statement
...
else
statement
statement
more statement
Примечание: …
означает, что можно писать сколько угодно условий eilf
.
Как это работает:
Когда исполняется инструкция if-elif-else, в первую очередь проверяется condition_1
. Если условие истинно, тогда исполняется блок инструкций if. Следующие условия и инструкции пропускаются, и управление переходит к операторам вне if-elif-else.
Если condition_1
оказывается ложным, тогда управление переходит к следующему условию elif
, и проверяется condition_2
. Если оно истинно, тогда исполняются инструкции внутри первого блока elif
. Последующие инструкции внутри этого блока пропускаются.
Этот процесс повторяется, пока не находится условие elif
, которое оказывается истинным. Если такого нет, тогда исполняется блок else в самом конце.
Перепишем программу с помощью if-elif-else.
score = int(input("Введите вашу оценку: "))
if score >= 90:
print("Отлично! Ваша оценка А")
elif score >= 80:
print("Здорово! Ваша оценка - B")
elif score >= 70:
print("Хорошо! Ваша оценка - C")
elif score >= 60:
print("Ваша оценка - D. Стоит повторить материал.")
else:
print("Вы не сдали экзамен")
Первый вывод:
Введите вашу оценку: 78
Хорошо! Ваша оценка - C
Второй вывод:
Введите вашу оценку: 91
Отлично! Ваша оценка А
Третий вывод:
Введите вашу оценку: 55
Вы не сдали экзамен
Такую программу намного легче читать, чем в случае с вложенными if-else.
условный оператор if, составные условия
На этом занятии поговорим об условном операторе. Что это такое? Представьте, что вам нужно вычислить модуль числа, хранящегося в переменной x. Как это сделать? Очевидно, нужно реализовать такой алгоритм.
И в этом алгоритме есть вот такое ветвление программы: при x<0 меняется знак на противоположный, а при других x это не делается. В результате получаем модуль числа в переменной x.
Так вот, чтобы реализовать проверку таких условий в Python имеется один условный оператор if, который в самом простом случае имеет такой синтаксис:
if(<условное выражение>) : оператор
или так:
if <условное выражение> : оператор
Если условное выражение истинно, то выполняется оператор, записанный в if. Иначе этот оператор не выполняется. Используя оператор ветвления, запишем программу для вычисления модуля числа:
x = -5 if(x < 0) : x = -x print(x)
Здесь операция изменения знака переменной x будет выполняться только для отрицательных величин, а положительные просто выводятся в консоль, минуя эту операцию.
Какие операторы сравнения существуют в Python и как они работают? Многие из них нам известны из школьного курса математики, это:
a > b |
Истинно, если a больше b |
a < b |
Истинно, если a меньше b |
a >= b |
Истинно, если a больше или равно b |
a <= b |
Истинно, если a меньше или равно b |
a == b |
Истинно, если a равно b (обратите внимание, для сравнения используется двойной знак равенства) |
a != b |
Истинно, если a не равно b |
Все эти операторы при сравнении возвращают булевое значение: True – истина или False – ложь. Например:
print(2 > 1) print(2 == 1) print(2 != 1)
Результат сравнения можно присвоить переменной, как и любое значение:
result = 7 > 5 print(result)
Сравнение строк
Как вы видите, сравнение двух числовых значений выполняется вполне очевидным образом. Но можно ли, например, сравнивать строки между собой? Оказывается да, можно. Чтобы определить, что одна строка больше другой, Python использует «алфавитный» или «лексикографический» порядок. Другими словами, строки сравниваются посимвольно. Например:
print('Я' > 'А' ) print( 'Кот' > 'Код' ) print( 'Сонный' > 'Сон' )
Алгоритм сравнения двух строк довольно прост:
- Сначала сравниваются первые символы строк.
- Если первый символ первой строки больше (меньше), чем первый символ второй, то первая строка больше (меньше) второй.
- Если первые символы равны, то таким же образом сравниваются уже вторые символы строк.
Сравнение продолжается, пока не закончится одна из строк. Если обе строки заканчиваются одновременно, и все их соответствующие символы равны между собой, то строки считаются равными. Иначе, большей считается более длинная строка.
В примерах выше сравнение ‘Я’ > ‘А’ завершится на первом шаге, тогда как строки «Кот» и «Код» будут сравниваться посимвольно:
- К равна К.
- о равна о.
- т больше чем д.
Конструкция if – elif – else
Теперь, когда мы знаем как сравниваются между собой величины, вернемся к нашему условному оператору if. И предположим, что хотим определить знак числа в переменной x. Конечно, проверку можно записать вот так:
x = -5 if x < 0 : print("x отрицательное число") if x >= 0 : print("x неотрицательное число")
Но можно сделать лучше. Смотрите, мы здесь имеем дело со взаимоисключающими условиями, то есть, они не могут произойти одновременно: либо первое, либо второе. Для таких ситуаций можно использовать ключевое слово else – иначе, чтобы ускорить процесс проверки:
x = 5 if x < 0: print("x отрицательное число") else: print("x неотрицательное число")
Теперь, у нас здесь всего одно условие. Если оно истинно, то выполнится первый print, а иначе – второй. Такая программа будет работать быстрее. И обратите внимание на синтаксис записи функции print: перед ней необходимо записать хотя бы один пробел (обычно ставится 4 пробела или символ табуляции). Эти пробелы в Python означают блок кода, который выполняется по некоторому условию. В данном случае блок кода состоит всего из одного оператора print. То же самое и для else.
В общем случае, синтаксис оператора if else следующий:
if(<выражение>):
оператор 1
else: оператор 2
или
if(<выражение>):
оператор 1
else:
оператор 2
Если же мы хотим по такому принципу выполнить три проверки: x > 0; x < 0; x == 0, то предыдущую программу можно записать так:
if x < 0: print("x отрицательное число") elif x > 0: print("x положительное число") else: print("x равен 0")
И вообще таких конструкций
if – elif – elif –…– elif – else
может быть много. Далее, обратим внимание на такой факт: во всех наших примерах по условию шел один оператор – print. Но что если нужно выполнить несколько операторов по некоторому условию? Для этого их нужно записывать по такому синтаксису:
if <условие>:
оператор 1
оператор 1
…
оператор N
Например:
x = -10; sgn = 0 if x < 0: sgn = -1 print("x отрицательное число", sgn) elif x > 0: sgn = 1 print("x положительное число", sgn) else: print("x равен 0", sgn)
Здесь по первым двум условиям выполняется два оператора: присвоение значения переменной sgn и вывод результата в консоль.
В ряде случаев конструкцию if-else удобнее записывать через тернарный условный оператор, который имеет такой синтаксис:
result = значение1 if <условие> else значение2
При истинности условия возвращается значение1, в противном случае – значение2. Например:
age = 18 accessAllowed = True if age >= 18 else False print(accessAllowed)
Получим True, если возраст (age) больше или равен 18, иначе – False. Кстати, проверку из данного примера можно сделать короче, просто прописав
accessAllowed = age >= 18
здесь оператор >= вернет True при возрасте больше или равен 18 и False – в противном случае.
Теперь, когда мы разобрались с базовыми моментами проверки условий, сделаем следующий шаг и попробуем реализовать проверку попадания переменной x в диапазон [2; 7], то есть, условие должно быть истинным, когда x принимает значения в этом диапазоне чисел. Очевидно, что здесь должно быть две проверки: первая – мы проверяем, что x >= 2 и вторая – проверяем, что x <= 7. Если оба этих условия выполняются одновременно, то x попадает в наш диапазон. Реализовать такую проверку на Python можно так:
x = 4 if x >= 2 and x <= 7 : print("x попадает в [2; 7]") else: print("x не попадает в [2; 7]")
Смотрите, здесь записано два условия, объединенных по И (and – это И). В результате, общее составное условие будет считаться истинным, если истинно и первое и второе условие. Если хотя бы одно из этих условий ложно, то ложно и все составное условие. В результате мы корректно реализуем проверку на вхождение значения переменной в диапазон [2; 7].
А теперь давайте реализуем противоположное условие, что x не принадлежит диапазону [2; 7]. Условие будет таким:
x = 40 if(x < 2 or x > 7): print("x не попадает в [2; 7]") else: print("x попадает в [2; 7]")
Здесь в составном условии используется связка по ИЛИ (or – это ИЛИ) и оно будет истинно, если истинно или первое, или второе условие. То есть, в нашем случае, если x < 2 или x > 7, то делается вывод о невхождении переменной x в указанный диапазон.
Итак, запомните следующие правила:
- условие x >= 2 and x <= 7 истинно, если истинно каждое из подусловий (x>=2 и x <= 7) и ложно, если ложно хотя бы одно из них;
- условие x < 2 or x > 7 истинно, если истинно хотя бы одно из подусловий (x < 2 или x > 7) и ложно, когда оба ложны.
Вот так можно записывать более сложные условия в условном операторе if. Причем они могут комбинироваться в любом сочетании, например:
x = 4; y = -2 if x >= 2 and x <= 7 and (y < 0 or y > 5): print("x попадает в [2; 7], y не попадает в [0; 5]")
Здесь реализована проверка, что x должно принадлежать [2; 7], а y не принадлежать [0; 5]. И обратите внимание вот на эти круглые скобки. Дело в том, что приоритет у операции and выше, чем у or, поэтому без скобок у нас бы получилась вот такая проверка:
if (x >= 2 and x <= 7 and y < 0) or (y > 5)
то есть, мы проверяли бы, что x принадлежит [2; 7] и y меньше нуля ИЛИ y больше 5. Как вы понимаете – это уже совсем другая проверка. Поэтому учитывайте приоритет этих операций при формировании составного условия. Если нужно изменить приоритет – используйте круглые скобки.
Одиночные проверки
Внутри условия можно прописывать и такие одиночные выражения:
x = 4; y = True; z = False if(x): print("x = ", x, " дает true") if(not 0): print("0 дает false") if("0"): print("строка 0 дает true") if(not ""): print("пустая строка дает false") if(y): print("y = true дает true") if(not z): print("z = false дает false")
Вот этот оператор not – это отрицание – НЕ, то есть, чтобы проверить, что 0 – это false мы преобразовываем его в противоположное состояние с помощью оператора отрицания НЕ в true и условие срабатывает. Аналогично и с переменной z, которая равна false.
Из этих примеров можно сделать такие выводы:
- Любое число, отличное от нуля, дает True. Число 0 преобразуется в False.
- Пустая строка – это False, любая другая строка с символами – это True.
- С помощью оператора not можно менять условие на противоположное (в частности, False превращать в True).
Итак, в условиях мы можем использовать три оператора: and, or и not. Самый высокий приоритет у операции not, следующий приоритет имеет операция and и самый маленький приоритет у операции or. Вот так работает оператор if в Python.
JavaScript — Условные и логические операторы
- Статьи
- Видеоуроки
- Таймлайн
- Вопросы
- Поиск
-
- Войти
- Регистрация
- HTML & CSS
- JavaScript
- Bootstrap
Условные операторы: if…else if…else, switch
Представим ситуацию в игре: персонаж под управлением искусственного интеллекта решает что делать, он может атаковать игрока или он может сбежать, и это зависит от здоровья персонажа. Давайте создадим переменную, которая будет контролировать здоровье врага:
int enemyHealth = 100;
Теперь нам нужно решить что делать. Для этого мы можем использовать условия (операторы ветвления). Условия есть во всех языках программирования, в том числе и в C++.
Выражение if в C++
Создадим условие: если здоровье врага больше 50, то он атакует игрока (здоровье игрока уменьшается):
int enemyHealth = 100; int playerHealth = 100; if (enemyHealth > 50) { playerHealth -= 10; }
Выражение if состоит из ключевого слова if (если), затем в круглых скобках пишется условие, а затем в фигурные скобки помещается код, который будет выполнен если условие истинно. Условие всегда булево значение: может быть только true или false.
Итак, если здоровье врага больше 50, враг атакует игрока. Но сейчас ничего не происходит, если здоровье меньше 50. Давайте исправим это.
else
Выражение if может иметь дополнительные блоки. Один из них: else (иначе, в противном случае). Данный блок выполняется если условие всех предыдущих блоков ложно:
int enemyHealth = 100; int playerHealth = 100; if (enemyHealth > 50) { playerHealth -= 10; } else { enemyHealth += 10; }
Если здоровье врага меньше 50 (условие ложно), то выполняется блок else. В данном случае мы увеличиваем здоровье врага (представим, что он находит аптечку).
Это очень простой случай, мы знаем что здоровье всегда 100 и мы можем написать что делать сразу после инициализации. Но когда наши программы станут больше, мы не сможем сказать какое значение у здоровья в данный момент времени. Когда мы научимся как работать с функциями в C++, мы сможем построить более интересные примеры.
else if
Условие if может иметь несколько блоков else if (в противном случае, если). Они используются, если нужны дополнительные условия:
if (enemyHealth > 80) { playerHealth -= 10; } else if (enemyHealth > 50 { // действие 1 } else if (enemyHelath > 20) { // действие 2 } else { enemyHealth += 10; }
Полное условие выглядит так: если здоровье больше 80, мы уменьшаем здоровье игрока. Если это не так (здоровье меньше 80), мы проверяем следующий блок: если здоровье больше 50. Если это так (здоровье между 50 и 80) мы вуполняем действие 1, в противном случае проверяем следующее условие: если здоровье больше 20. Если ни одно из условий не выполняется, то происходит переход к блоку else. Он будет выполнен если здоровье меньше 20.
Весь этот код принадлежит к одному оператору if. Только один блок данного оператора будет выполнен.
Выражение switch в С++
В C++ есть ещё один условный оператор — switch (переключатель). Он используется в ситуациях, когда известно какие значения может принимать условие. Например, давайте прочитаем ввод пользователя и проверим, какую клавишу он нажал:
char i; cin >> i; switch (i) { case ‘i’: coutВначале мы помещаем ключевое слово switch. Затем, пишем в круглых скобках переменную, которую нужно проверить. После этого идёт тело switch в фигурных скобках. Тело switch состоит из проверок отдельных значений переменной (case — пример, ситуация, вариант). Обратите внимание, что после каждой проверки мы помещаем break. Этот оператор пропускает проверку остальных вариантов. Также есть вариант default — он выполняется если все остальные блоки ложны.
Вывод
Условия — одна из главных частей любого языка, включая C++. В C++ есть два условных оператора: if…else if…else и switch. Мы можем пользоваться только операторм if, но иногда switch бывает более удобен.
Комментарии:
11 августа 2020 г. 7:33
1 Guest
Условные операторы If и Switch
Очень часто нужно, чтобы в зависимости от некоторых условий выполнялись различные действия.
Реализовать все это позволяют условные операторы.
Условные операторы используются для выполнения определенных действий в зависимости от заданных условий.
В JavaScript имеются следующие условные операторы:
- Оператор if используется для определения блока кода, который будет выполняться, если заданное условие соблюдается (возвращает true)
- Оператор else используется для определения блока кода, который будет выполняться, если то же условие не соблюдается (возвращает false)
- Оператор else if используется для определения нового условия, если первое условие не соблюдается (возвращает false)
- Оператор switch определяет несколько альтернативных блоков кода
Оператор if
Оператор if используется для определения блока JavaScript кода, который будет выполняться, если заданное условие соблюдается (возвращает true).
Синтаксис:
if (условие) {
блок кода, выполняемый если условие возвращает true
}
Внимание! Ключевое слово if пишется в нижнем регистре. Использование больших букв (If или IF) приведет к ошибке JavaScript.
Сформируем строку приветствия «Добрый день», если время меньше 18:00:
if (hour < 18) {
greeting = "Добрый день";
}
Оператор else
Оператор else является частью и продолжением оператора if и используется для определения блока JavaScript кода, который будет выполняться, если заданное условие не соблюдается (возвращает false).
Синтаксис:
if (условие) {
блок кода, выполняемый если условие возвращает true
} else {
блок кода, выполняемый если условие возвращает false
}
Если время меньше 18:00, сформируем строку приветствия «Добрый день», в обратном случае сформируем строку приветствия «Добрый вечер»:
if (hour < 18) {
greeting = "Добрый день";
} else {
greeting = "Добрый вечер";
}
Оператор else if
Оператор else if является частью и продолжением оператора if и используется для определения нового условия, если первое условие не соблюдается (возвращает false).
Синтаксис:
if (условие1) {
блок кода, выполняемый если условие1 возвращает true
} else if (условие2) {
блок кода, выполняемый если условие1 возвращает false, а условие2 true
} else {
блок кода, выполняемый если условие1 и условие2 возвращают fa
Предложения с if в английском языке
Наши поступки зависят от различных условий: желания, времени, результата предыдущих действий и т.д. В родной речи, мы каждый день употребляем фразы вида: сделаю, если будет время; куплю, если будут деньги и т.п. Несомненно, что такие выражения важно уметь составлять и для успешной коммуникации на иностранном языке. Чем и займемся сегодня, рассмотрев условные конструкции, или, как их чаще называют, предложения с if в английском языке. Из материала узнаем нюансы их значения, составления и использования.
Значение и разновидности
Выражения условий – сложноподчиненные предложения, содержащие главную и придаточную части, соединенные по смыслу условно-следственной связью. Главное предложение имеет значение следствия, а придаточное непосредственно самого условия. При этом в начале предложения может стоять любая из этих конструкций. В русском языке мы всегда отделяем их запятой, а английский допускает постановку этого знака только в случаях, когда придаточное стоит перед главным.
В целом английская грамматика делит придаточные предложения условия на несколько типов.
Безусловные (Zero Conditional)
Название этого вида конструкций указывает на то, что события всегда реальны, т.е. привычны, общеизвестны, очевидны. К ним относятся факты, утверждения, будничная деятельность. Фактически это даже не условия, а закономерности, обычаи, привычки, традиции. Выражения данного типа используются в простом настоящем времени.
- If he is pupil, he learns many lessons – Если он ученик, то он учит много уроков.
- If I am at my grandparents’ home, I always eat pies and pancakes – Если я нахожусь у моих бабушки и дедушки, я всегда ем пирожки и блины.
- If you read a book, you get knowledge – Если ты читаешь книгу, ты получаешь знания.
Примеры доказывают, что название группы оправданно, так как в выражениях больше прописных истин, чем условий.
Реальные (First Conditional)
С такой конструкцией предложения в английском языке выражают высокую вероятность совершения событий. Это уже не 100% истина, как в первой группе, но в целом выполнение условий вполне реально. Как правило, такие условные выражения относятся к ближайшему будущему. При этом важно отметить, что будущее время используется только в главной части предложения, а придаточные конструкции с If в такой ситуации всегда употребляются в настоящем.
- If we are free tomorrow, we will go to the cinema – Если мы будем завтра свободны, мы пойдем в кинотеатр.
- If it is cold, I will put on my warm sweater – Если будет холодно, я надену свой теплый свитер.
- If you tell me the truth, I will give you 100$ — Если ты скажешь мне правду, я дам тебе 100$.
Для английского языка также характерно употребление подобных сложноподчиненных предложений в качестве предостережения, предупреждения.
- You will have some troubles with health if you continue to work out in the gym in that way – У вас будут некоторые проблемы со здоровьем, если вы продолжите заниматься в тренажерном зале таким способом.
- If you drink cold lemonade, you will catch a cold – Если ты выпьешь холодный лимонад, ты простудишься.
Нереальные в настоящем (Second Conditional)
Фразы обозначают небольшую вероятность выполнения действий в настоящем или будущем времени. В принципе, такие события могут быть, но шанс, что они действительно произойдут, крайне мал. Придаточная конструкция переводится на русский словосочетанием «если бы» и выражает пожелания, гипотезы, размышления о том, что могло бы быть.
По построению отметим, что условие if ставится в Past Simple, a главная часть передается вспомогательной связкой would+начальная форма глагола (без to).
- If I were at home, I would read a fairy tale to my little daughter – Если бы я был дома, я бы прочитал моей младшей дочери сказку.
- If you helped us, we would finish our work in time – Если бы вы нам помогли, мы бы закончили свою работу вовремя.
- If she were at the lesson, she would understand the subject better – Если бы она присутствовала на уроке, он бы поняла эту тему лучше.
Заметьте, что в главных предложениях такого типа английская грамматика диктует обязательное употребление формы were и для единственного, и для множественного числа. В разговорном языке многие пренебрегают этим правилом и используют was. Но на письме этого делать нельзя.
Добавочное значение предложений этой группы – вежливое замечание, совет.
- If I were you, I would write a letter to them – Если бы я была на твоем месте, я бы написала им письмо.
- I would never shake his hand, if I were you – Я никогда бы не пожал ему руку, будь я на твоем месте.
Нереальные в прошлом (Third Conditional)
Это условные комбинации, выражающие сожаление о том, что какие-либо события/действия не случились или случились, но лучше бы не случались, в прошлом. Очевидно, что прошлое изменить нельзя, поэтому такие конструкции назвали нереальными.
Данные предложения с союзом if в английском языке используют в придаточной части конструкцию вида Past Perfect, а в главной комбинацию «would have + причастие II».
- If I hadn’t missed the train, I would have been at London then – Если бы я не опоздал на поезд, я был бы тогда в Лондоне.
- If they had told us the information, we would have found criminal man earlier – Если бы они рассказали нам эту информацию, мы бы нашли преступника раньше.
- I would have bought this book if I hadn’t spent my money on magazines – Я бы купил эту книгу, если бы не потратил свои деньги на журналы.
На русский язык эти придаточные переводятся так же, как и нереальные условия настоящего. Необходимо различать, что в настоящем мы подразумеваем «если бы сейчас», а в прошлом – «если бы тогда».
Эта разновидность условных также используется для критики совершенных кем-то действий, результат которых изменить не удастся.
- If you had written the rule, you wouldn’t have made mistakes in your works – Если бы вы записали это правило, вы бы не сделали в своих работах ошибок.
Наравне с негативными высказываниями, англичане употребляют данный тип предложений и для выражения положительных действий.
- He wouldn’t have met his future wife if he hadn’t gone to the party – Он бы не встретил свою будущую жену, если бы не пошел на эту вечеринку.
- He wouldn’t have become a great writer, if he had worked as a manager all his life – Он бы не стал великим писателем, если бы всю свою жизнь работал менеджером.
Это был последний тип условных предложений английского языка. Осталось обобщить свои знания, и запомнить все конструкции с помощью удобной таблицы.
Предложения c if в английском языке – сводная таблица
Представим все правила по условным предложениям, которые содержит английская грамматика, в виде общей таблицы. Удобно структурированный материал легче понимается и быстрей запоминается. Кроме того, такая табличка отличный помощник при выполнении практических упражнений.
If sentences | ||||
Тип | Значение | Конструкция | Пример | |
Безусловные | Факты, утверждения, будничные действия, 100% выполнимые события | Придат очное | Главное | If I walk in the park, I always listen to music. Если я гуляю в парке, я всегда слушаю музыку. |
If + Present Simple | Present Simple | |||
Реальные | Вполне осуществимые условия, которые будут выполнены в ближайшем будущем; предостережения, предупреждения. | Прида точное | Главное | If I get the salary, I will buy four tickets to a football match. Если я получу зарплату, я куплю 4 билета на футбольный матч. If you watch a horror movie in the evening, you won’t sleep at night. Если ты посмотришь вечером фильм ужасов, ты не будешь спать ночью. |
If + Present Simple | Future Simple | |||
Нереальные в настоящем | Выполнение действий в настоящем или будущем практически невероятно; замечание, совет. | Прида точное | Главное | If I had money, I would buy a car. Если бы у меня были деньги, я бы купил машину. If I were you I would never tell the truth. Если бы я был на твоем месте, я бы никогда не рассказал правду. |
If + Past Simple | Would + Infinitive (без to) | |||
Нереальные в прошлом | Сожаление о не произошедших/произошедших давно событиях; положительный результат, критика. | Прида точное | Главное | If I had caught the ball, I would have won the game. Если бы я поймал мяч, я бы выиграл эту игру. If she hadn’t gone to the match, she wouldn’t have met with her boyfriend. Если бы она не пришла на матч, она бы не встретилась со своим парнем. If you had woken up earlier, you would gone to the school in time. Если бы ты встал пораньше, ты бы пришел в школу вовремя. |
If + Past Perfect | Would + have + participle II |
Другие статьи по теме
Просмотры: 2 487
Прекратите использовать оператор If-else / Блог компании SkillFactory / Хабр
Вы просмотрели бесчисленные учебные пособия, использующие операторы If-else. Вы, вероятно, также читали книги по программированию, пропагандирующие использование If-else в качестве фактического метода ветвления.
Возможно, это даже ваш режим по умолчанию, чтобы использовать If-else. Но давайте покончим с этим прямо сейчас, заменив If-else объектами состояния.
Обратите внимание, что этот подход можно использовать, если вы пишете класс с методами, которые нуждаются в изменении его реализаций в зависимости от текущего состояния. Вы бы применили другой подход, если бы не имели дело с изменяющимся состоянием объекта.
Даже если вы слышали о шаблоне состояния, вы можете задаться вопросом, как он реализован в готовом к продакшену коде.
Для тех, кто все еще находится в неведении, вот очень краткое введение.
Вы увеличите сложность с любым новым условным требованием, реализованным с помощью If-else.Применяя шаблон состояния, вы просто изменяете поведение объектов, используя специализированные объекты состояния вместо операторов If-else.
Прошли те дни, когда код выглядел примерно так, как показано ниже.
Вы, конечно, писали более сложные ветвления раньше. Несколько лет назад я был уверен в этом.
Приведенная выше логика ветвления даже не очень сложна — но попробуйте добавить новые условия, и вы увидите, что она усложняется в разы.
Кроме того, если вы думаете, что создание новых классов вместо простого использования ветвящихся операторов звучит раздражающе, подождите, пока вы не увидите это в действии. Этот способ лаконичен и элегантен.
Даже лучше, это сделает вашу кодовую базу более SOLID, за исключением буквы ”D».
«Хорошо, я поверил, что if-else — это зло, теперь покажите мне, как избежать беспорядочного ветвящегося кода»
Мы рассмотрим, как я заменяю If-else в готовом к продакшену коде. Это выдуманный пример, но подход тот же, что я использовал в кодовых базах для крупных клиентов.
Давайте создадим очень простой класс Booking
, который имеет несколько состояний. Он также будет иметь два паблик метода: Accept()
и Cancel()
.
Я нарисовал диаграмму в меру своих возможностей, которая отображает различные состояния, в которых может находиться бронирование.
Рефакторинг ветвящейся логики из нашего кода представляет собой трехэтапный процесс:
- Создать абстрактный класс базового состояния
- Реализовать каждое состояние как отдельный класс, наследующийся от базового состояния
- Пусть класс
Booking
имеет приватный или внутренний метод, который принимает класс базового состояния в качестве параметра
Реализация
Во-первых, нам нужен класс базового состояния, который унаследуют все состояния.
Обратите внимание, что этот класс также имеет два метода, Accept и Cancel — хотя здесь они помечены как внутренние.
Кроме того, базовое состояние имеет ”специальный» метод EnterState(Booking booking)
. Он вызывается всякий раз, когда объекту бронирования присваивается новое состояние.
Во-вторых, мы создаем отдельные классы для каждого состояния, которое хотим представлять.
Обратите внимание, как каждый класс представляет состояние, описанное на красивой диаграмме выше. Кроме того, CancelledState не позволит нашему бронированию перейти в новое состояние. Этот класс очень похож по духу на шаблон нулевого объекта.
Наконец, сам класс бронирования.
Посмотрим, класс бронирования — это просто делегирование полномочий осуществления принятия и отклонения?
Это позволяет нам устранить большую часть условной логики и позволяет каждому состоянию сосредоточиться только на том, что важно для него самого — текущее состояние также имеет возможность перевести бронирование в новое состояние.
Как бороться с новыми условиями
Если новая функция обычно была реализована с помощью некоторой условной проверки, то теперь вы можете просто создать новый класс состояния.
Это очень просто. Вам больше не придется иметь дело с громоздким оператором if-else.
Как сохранить объект состояния в базе данных
Объект состояния не имеет значения при сохранении объекта, например, в базе данных SQL или NoSQL. Важно только знать состояние объекта и то, как оно должно быть отображено в столбце.
Вы можете сопоставить состояние с читаемым именем, перечислением или целым числом. Все, что вам удобно, пока у вас есть какой-то способ преобразовать сохраненное значение обратно в объект состояния.
Но ты все еще используешь «if»
Да, он очень важен. Особенно при использовании в качестве проверочных точек. Именно сочетание If-else является основной причиной головных болей поддержки кода.
Это же куча дополнительных классов
Действительно. Как я уже упоминал в другой статье, сложность возникает не из количества классов, которые у вас есть, а из обязанностей, которые эти классы берут на себя.
Наличие большого количества специализированных классов сделает ваш код более читаемым, поддерживаемым и просто более приятным для работы.
Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory:
Читать еще
Условные предложения, условные предложения типа I, II, III
Условные предложения
Условные предложения иногда сбивают с толку тех, кто изучает английский как второй язык.
Остерегайтесь:
- Какой это тип условных приговоров?
- Где находится предложение if (например, в начале или в конце условного предложения)?
Есть три типа условных предложений.
тип | состояние |
---|---|
I | условие возможно выполнить |
II | Условие теоретически возможно выполнить |
III | Условие невозможно выполнить (слишком поздно) |
1.Форма
тип | if-пункт | основная статья |
---|---|---|
I | Простой подарок | will-future или (модальный + инфинитив) |
II | Простое прошлое | будет + инфинитив * |
III | Прошедшее совершенное | будет + иметь + причастие прошедшего времени * |
2.Примеры (предложение if в начале)
тип | если пункт | основная статья |
---|---|---|
I | Если учусь, | Сдам экзамен. |
II | Если бы я учился, | Я бы сдал экзамен. |
III | Если бы я учился, | Я бы сдал экзамен. |
3. Примеры (if-clause в конце)
тип | основная статья | if-пункт |
---|---|---|
I | сдам экзамен | если учусь. |
II | Я бы сдал экзамен | если бы я учился. |
III | Я бы сдал экзамен | , если бы я учился. |
4. Примеры (утвердительные и отрицательные предложения)
тип | Примеры | ||
---|---|---|---|
длинные формы | краткие / сокращенные формы | ||
I | + | Если буду учиться, сдам экзамен. | Если буду учиться, то сдам экзамен. |
– | Если я учусь, я не проиграю экзамен. Если я не буду учиться, я не сдам экзамен. | Если я буду учиться, то не провалю экзамен. Если я не буду учиться, я провалю экзамен. | |
II | + | Если бы я учился, я бы сдал экзамен. | Если бы я учился, я бы сдал экзамен. |
– | Если бы я учился, я бы не провалил экзамен. Если бы я не учился, я бы провалил экзамен. | Если бы я учился, я бы не провалил экзамен. Если бы я не учился, я бы провалил экзамен. | |
III | + | Если бы я учился, я бы сдал экзамен. | Если бы я учился, я бы сдал экзамен. |
– | Если бы я учился, я бы не провалил экзамен. Если бы я не учился, я бы провалил экзамен. | Если бы я учился, я бы не провалил экзамен. Если бы я не учился, я бы провалил экзамен. |
* Мы можем заменить could или might на would (иногда также возможны следует, может или должен).
- Я бы сдал экзамен.
- Я сдал экзамен.
- Я могу сдать экзамен.
- Я могу сдать экзамен.
- Я должен сдать экзамен.
- Я должен сдать экзамен.
Спасибо Каю.
Объявления
,
Условных приговоров типа I, II и III (условные приговоры, If-Clauses)
Условные предложения также известны как условные предложения или предложения If. Они используются для обозначения того, что действие в основном предложении (без , если ) может иметь место только в том случае, если выполняется определенное условие (в предложении с , если ). Есть три типа условных приговоров.
Условное предложение типа 1
→ Возможно, а также очень вероятно , что условие будет выполнено.
Форма: if + Simple Present, will-Future
Пример. Если я найду ее адрес, я пришлю ей приглашение.
подробнее об условных предложениях типа I ►
Условное предложение типа 2
→ Возможно, но очень маловероятно , что условие будет выполнено.
Форма: if + Simple Past, Conditional I (= would + Infinitive)
Пример: Если бы я нашел ее адрес, я бы отправил ей приглашение.
подробнее об условных приговорах типа II ►
Условное предложение типа 3
→ Невозможно , что условие будет выполнено, потому что оно относится к прошлому.
Форма: если + Past Perfect, Условное II (= будет + иметь + Past Participle)
Пример: Если бы я нашел ее адрес, я бы отправил ей приглашение.
подробнее об условных приговорах типа III ►
Исключения
Иногда условные предложения типа I, II и III также могут использоваться с другими временами.
Подробнее об условных предложениях, используемых с другими временами ►
Упражнения по условным приговорам
Тип условного приговора 1
Условное предложение типа 2
Условное предложение типа 3
Смешанные упражнения по условным приговорам
Исключения
Тесты на условные приговоры
,Условий | Грамматика | Английский Клуб
Если я увижу ее, я ей скажу.
В английском языке есть несколько структур, которые мы называем условными или , если условные . Слово «условие» означает «ситуация или обстоятельство». Если выполняется определенное условие, , тогда имеет место определенный результат:
Есть трех основных английских условных обозначений плюс так называемое нулевое условное .Есть еще несколько условных операторов, которые мы не используем так часто.
условный вид | использование | if-пункт | основная статья |
---|---|---|---|
1 | возможное состояние + вероятный результат | настоящее простое | будет + основной глагол |
2 | гипотетическое условие + возможный результат | простое прошедшее время | будет + основной глагол |
3 | просроченное прошлое условие + возможный прошлый результат | мимо идеального | будет иметь + причастие прошедшего времени |
0 | реальное состояние + неизбежный результат | настоящее простое | настоящее простое |
Структура условных приговоров
Структура большинства условных выражений очень проста.Есть две основные возможности.
Конечно, мы добавляем много слов и можем использовать разные времена, но базовая структура обычно выглядит так:
если | состояние | счет |
---|---|---|
если | г = 10 | 2y = 20 |
или так:
счет | если | состояние |
---|---|---|
2y = 20 | если | г = 10 |
Эта структура может давать, например, следующие предложения:
- Если я увижу ее, я ей скажу.
- Я скажу ей, если увижу ее.
Обратите внимание на запятую в первом предложении. (В этом случае запятая всегда правильна, но не всегда важна, если предложение короткое.) Во втором предложении мы обычно не используем запятую.
Первое условие
для реальной возможности
Если я выиграю в лотерею, я куплю машину.
Речь идет о будущем. Мы думаем о конкретном состоянии или ситуации в будущем и о результате этого состояния.Есть реальная возможность, что такое состояние произойдет. Например, утро. Ты дома. Вы планируете поиграть в теннис сегодня днем. Но в небе есть облака. Представьте, что идет дождь. Что ты будешь делать?
если | состояние | счет |
---|---|---|
Present Simple | будет + основной глагол | |
Если | это дожди , | Я останусь дома. |
Подробнее о Первом условном
Секунд условный
за нереальную возможность
Если бы я выиграл в лотерею, я бы купил машину.
Второе условие похоже на первое условие. Мы все еще думаем о будущем. Мы думаем о конкретном состоянии в будущем и о результате этого состояния. Но существует , а не , реальная вероятность того, что это условие произойдет.Например, у вас , а у лотерейный билет. Можно ли выиграть? Нет! Ни лотерейного билета, ни выигрыша! Но, возможно, в будущем вы купите лотерейный билет. Так что о победе в будущем можно думать, как о мечте. Это не очень реально, но все же возможно.
если | состояние | счет |
---|---|---|
Прошлое простое | would + основной глагол | |
Если | I выиграл в лотерею, | Я купил бы машину. |
Подробнее о втором условном
Третье условие
без возможности
Если бы я выиграл в лотерею, я бы купил машину.
Первое и второе условные выражения говорят о будущем. С третьим условным мы говорим о после . Мы говорим о состоянии в прошлом, при котором произошло , а не . Вот почему нет возможности для этого состояния.Третье условие тоже похоже на сон, но с нет возможности мечты сбыться.
На прошлой неделе вы купили лотерейный билет. Но вы не выиграли. 🙁
если | состояние | счет |
---|---|---|
Прошедшее совершенное | будет + причастие прошедшего времени | |
Если | Я выиграл в лотерею, | Я купил бы машину. |
Подробнее о третьем условном
с нулевым условием
для достоверности
Если нагреть лед, он тает.
Мы используем так называемое нулевое условное , когда результат условия всегда истинен, как научный факт.
Возьми лед. Переложить в кастрюлю. Нагрейте кастрюлю. Что случается? Лед тает (становится водой). Вы были бы удивлены, если бы этого не произошло.
если | состояние | счет |
---|---|---|
Present Simple | Present Simple | |
Если | греть лед, | тает. |
Подробнее о программе
с нулевым условиемСводка условий
Вот таблица, которая поможет вам визуализировать основные условные выражения.
Не воспринимайте 50% и 10% слишком буквально. Они просто помогают тебе.
вероятность, условная | , пример | время | |
---|---|---|---|
100% | ноль | Если нагреть лед, он тает. | любой |
50% | 1-й | Если я выиграю в лотерею, я куплю машину. | будущее |
10% | 2-я | Если бы я выиграл в лотерею, я бы купил машину. | будущее |
0% | 3-й | Если бы я выиграл в лотерею, я бы купил машину. | после |
Люди иногда называют условные выражения «структурами if» или «предложениями if», потому что обычно (но не всегда) в условных предложениях присутствует слово if .
1-й условный Английский клуб : Учить английский : Грамматика: глаголы: условные ,Первое условное | Грамматика | Английский Клуб
для реальной возможности
Если я выиграю в лотерею, я куплю машину.
Речь идет о будущем. Мы думаем о конкретном состоянии или ситуации в будущем и о результате этого состояния. Есть реальная возможность, что такое состояние произойдет. Например, утро. Ты дома. Вы планируете поиграть в теннис сегодня днем. Но в небе есть облака. Представьте, что идет дождь.Что ты будешь делать?
если | состояние | счет |
---|---|---|
Настоящее Простое | will + основной глагол | |
Если | это дожди , | Я останусь дома. |
Обратите внимание, что мы думаем о будущем состоянии. Дождя еще нет. Но небо облачно и кажется, что может пойти дождь.Мы используем время Present Simple , чтобы говорить о возможном будущем состоянии. Мы используем will + основной глагол , чтобы говорить о возможном будущем результате. Важным в первом условном условии является то, что существует реальная вероятность того, что условие произойдет.
Вот еще несколько примеров (вы помните две основные структуры: [, если условие , результат] и [результат , если условие ]?):
если | состояние | счет |
---|---|---|
Настоящее Простое | will + основной глагол | |
Если | Я вижу Мэри, | Я ей скажу. |
Если | Тара завтра свободна, | он ее пригласит. |
Если | не сдают экзамен, | их учитель будет опечален. |
Если | завтра дождь, | ты останешься дома? |
Если | завтра дождь, | что ты будешь делать? |
счет | если | состояние |
---|---|---|
will + основной глагол | Настоящее Простое | |
Я скажу Мэри | если | Я вижу ее. |
Пригласит Тару | если | Она свободна завтра. |
Их учитель будет грустным | если | они не сдают экзамен. |
Останешься дома | если | завтра идет дождь? |
Что вы будете делать | если | завтра идет дождь? |
Иногда мы используем , будет , может или может вместо будет , например: Если сегодня солнечно, мы можем поиграть в теннис.
2-й условный Английский клуб : Учить английский : Грамматика: Глаголы: Условные выражения: Первое условное ,