В этой статье мы рассмотрим, пожалуй, главную часть любой программы, поскольку именно условные конструкции формируют ее структуру и делают так, чтобы запускались нужные части кода. Эти конструкции называют «сердцем» программы в любом языке программирования, и тот же искусственный интеллект по большей части построен на ветвлениях условий. Поэтому рассмотрим их подробнее в следующем порядке:
- условный оператор if ,
- конструкция if-else ,
- конструкция if-elif-else ,
- примеры программ.
Что делает условный оператор в Python
Проще всего это понять на примере. Введите в интерпретаторе Python следующее и нажмите Enter для вывода:
>>> if 5 > 4:
print(‘Верно, 5 больше, чем 4.’)
Верно, 5 больше, чем 4.
Перед нами простейший пример работы программы по условию. Если переводить с Python (а это почти чистый английский — настолько порой понятен его код), мы написали буквально следующее: «Если 5 больше 4, напечатать: Верно, 5 больше, чем 4 ».
Читаем программы с условным оператором | Информатика ОГЭ 2022 | Умскул
Таким образом, if служит для выполнения блока кода по условию: если условие истинно (то есть Python рассматривает его как True ), код блока будет исполнен, а если ложно ( False ), то нет. Давайте приведем и пример False , введите и нажмите Enter:
if 5 < 4:
print(‘Верно, 4 больше 5’)
Интерпретатор молчит — и правильно делает, потому что условие ложно, а значит запись Верно, 4 больше 5 (сама по себе тоже ошибочная) никогда не будет выведена.
Но в большинстве случаев одного условия нам будет не хватать и придется использовать более сложные конструкции: if-else и if-elif-else .
Условная конструкция if-else
if-else используется, когда нужно дать программе выбор: в первом случае сделать так, а во втором — иначе. Вот пример:
money = int(input(‘Какую сумму вы бы хотели потратить на покупки у нас? Введите цифру: ‘))
if money >= 100:
print(‘Добро пожаловать! Отправили каталог на вашу электронную почту.’)
else:
print(‘К сожалению, у нас нет товаров дешевле 100 рублей. Заходите еще.’)
input(‘Нажмите Enter для выхода.’)
Первая строка нужна для ввода, за который отвечает инструкция input . Если в двух словах, то функция input состоит в приеме пользовательского ввода и, при необходимости, в передаче введенного значения в переменную (в данном случае в качестве переменной выступает money ).
А далее в дело вступает условная конструкция: если введенная сумма равна или больше ста рублей, программа дает положительный ответ. Если же введенная сумма 99 рублей или меньше, выдается другой ответ.
В последней строчке мы также добавили оператор input , который в данном случае не передает никакого значения в переменную, а нужен для перевода на следующую строку кода. А поскольку этой строки у нас нет, по нажатию Enter выполняется выход из программы: это еще одна особенность input .
Условная конструкция if-elif-else
Давайте усложним предыдущий пример и заставим программу выбирать из трех вариантов. Сделать это можно, добавив дополнительное условие, которое будет задано оператором elif :
Задание 6. Программа с условным оператором. ОГЭ. Информатика. 9 класс
money = int(input(‘Какую сумму вы бы хотели потратить на покупки у нас? Введите цифру: ‘))
if money >= 10000:
print(‘Рады приветствовать оптового покупателя! Для вас у нас есть специальные скидки.’)
elif money >= 100:
print(‘Добро пожаловать! Отправили каталог на вашу электронную почту.’)
else:
print(‘К сожалению, у нас нет товаров дешевле 100 рублей. Заходите еще.’)
input(‘Нажмите Enter для выхода.’)
Теперь, если пользователь введет сумму равную или больше указанного значения (10000), программа выдаст текст из первого блока с if . А если сумма будет меньше этого значения, но равна или больше 100, будет выполнено условие оператора elif , и пользователь увидит второй текст.
Чтобы вам было удобнее читать код с условиями, операторы удобно переводить так: if — «если», elif — «а если», else — «в ином случае».
Добавим, что elif может быть сколь угодно много, главное правило: в первом условии обязательно должен быть указан оператор if . Вот пример кода с несколькими elif . Представим, что мы хотим сгенерировать стартовую звездную систему для нашей цивилизации в космической стратегии:
import random
star = random.randint(1, 5)
planets = random.randint(1, 10)
if star == 1:
print(‘Ваша цивилизация живет в системе голубого гиганта, вокруг которого вращаются’, planets, ‘планет’)
elif star == 2:
print(‘Ваша цивилизация живет в системе белого карлика, вокруг которого вращаются’, planets, ‘планет’)
elif star == 3:
print(‘Ваша цивилизация живет в системе солнцеподобного желтого карлика, вокруг которого вращаются’, planets, ‘планет’)
elif star == 4:
print(‘Ваша цивилизация живет в системе оранжевого гиганта, вокруг которого вращаются’, planets, ‘планет’)
else:
print(‘Ваша цивилизация живет в системе красного сверхгиганта, вокруг которого вращаются’, planets, ‘планет’)
input(‘Нажмите Enter для выхода’)
Вот какую систему подарил рандом нам:
Ваша цивилизация живет в системе солнцеподобного желтого карлика, вокруг которого вращаются 6 планет
Нажмите Enter для выхода
Почти солнечная, только планет поменьше. Обратите внимание, что мы создали две переменные ( star и planets ), генерацию значений для которых доверили модулю random , который сначала нужно вызвать:
import random
Далее при помощи инструкции random.randint мы задали диапазон генерируемых значений, из которого генератор случайных чисел (далее — ГСЧ) выбирает одно: для звезд из 5 и для планет из 10:
star = random.randint(1, 5)
planets = random.randint(1, 10)
Поскольку типов звезд у нас пять, блоков кода с условиями должно быть столько же, поэтому нам и пригодились несколько операторов elif . А вот количество планет будет произвольным для любого куска кода, потому что переменная planets включена во все.
И еще один момент: вы уже заметили, что в коде одни операции обозначаются знаком = , а другие знаком двойного равенства: == . В Python один знак «равно» ( = ) используется только для присвоения значений переменным, а вот двойное равенство равно арифметическому. Поэтому в примере выше код:
star = random.randint(1, 5)
означает, что переменная star принимает случайное значение, сгенерированное модулем random , а выражение:
if star == 1:
означает, что переменная star с уже присвоенным значением сравнивается со значением 1 (и в случае истинности этого условия, начинает выполняться код этого блока).
Игровые примеры для закрепления
Лучше всего учиться играя, поэтому давайте продемонстрируем, как работает условный оператор if else в Python , на примере простейших игр, а заодно познакомимся с другими полезными функциями.
Подбрасываем монетку
Напишем такую программу с использованием условной конструкции if-elif-else и шаг за шагом рассмотрим, как эта программа устроена. Итак, наберите в редакторе, не забывая про отступы:
import random
coin = random.randint(1, 2)
attempts = 0
orel = 0
reshka = 0
while attempts < 100:
if coin == 1:
orel += 1
attempts += 1
coin = random.randint(1, 2)
elif coin == 2:
reshka += 1
attempts += 1
coin = random.randint(1, 2)
else:
print(‘Монетка упала ребром. Неужели такое бывает? Хорошо, перебрасываем.’)
attempts += 1
coin = random.randint(1, 2)
print(‘Орёл выпал’, orel, ‘раз(-а), а решка’, reshka, ‘раз(-а).’)
input(‘Нажмите Enter для выхода’)
Броски монетки мы будем имитировать при помощи уже знакомого нам ГСЧ, за который отвечает модуль random . Его мы и вызываем в первой строчке кода:
import random
Далее вводим несколько переменных:
- coin — для бросков монетки,
- attempts — для подсчета количества бросков,
- orel — будет добавлять число выпавших «орлов»,
- reshka — будет добавлять число выпавших «решек».
При подбрасывании монетки мы будем сразу же использовать ГСЧ, поэтому пишем:
coin = random.randint(1, 2)
Это значит, что значение будет генерироваться случайным образом в пределах от 1 до 2, то есть может выпасть либо единица, либо двойка. Теперь осталось присвоить эти значения орлам и решкам соответственно, указать максимальное количество бросков и сделать так, чтобы при каждом броске их число увеличивалось на один. Для этого используем условную конструкцию if-elif-else внутри цикла while :
while attempts < 100:
Эта часть кода означает: до тех пор пока бросков меньше 100:
if coin == 1:
orel += 1
attempts += 1
coin = random.randint(1, 2)
если ГСЧ выдал 1:
- увеличиваем количество орлов на единицу,
- увеличиваем количество бросков на единицу,
- подбрасываем монетку снова.
elif coin == 2:
reshka += 1
attempts += 1
coin = random.randint(1, 2)
То же самое, но с решкой.
else:
print(‘Монетка упала ребром. Неужели такое бывает? Хорошо, перебрасываем.’)
attempts += 1
coin = random.randint(1, 2)
Код, добавленный на случай невозможного (ребром монетка никогда не упадет, поскольку наш ГСЧ может выдать только 1 или 2). В данном случае эта часть кода не обязательна, но заведите себе привычку добавлять последний блок с else — «невозможные» условия порой всё же могут выполняться, поскольку программисты не всегда могут учесть все сценарии работы программы. И поэтому блок с else в таких случаях сделает программу более стабильной в случае выполнения неучтенного условия.
Как только монетка будет подброшена в сотый раз, будет исполнен последний блок кода:
print(‘Орёл выпал’, orel, ‘раз(-а), а решка’, reshka, ‘раз(-а).’)
input(‘Нажмите Enter для выхода’)
Программа выйдет из цикла while и выдаст, сколько раз выпал орел, а сколько решка: изучаем статистику и выходим. По сути, пользователю будет виден только результат примерно в таком виде:
Орёл выпал 53 раз(-а), а решка 47 раз(-а).
Нажмите Enter для выхода
Конечно, понаблюдать за работой ГСЧ интересно, но всё же играми в полной мере что генератор звезд и планет, что броски монетки назвать сложно, поэтому напишем программу поинтереснее.
Играем с компьютером в кости
В этой игре будем по очереди бросать кубики с компьютером, а в конце объявим победителя. Это делает следующий код:
import random
score1 = 0
score2 = 0
games = 0
die1 = 0
die2 = 0
total1 = 0
die3 = 0
die4 = 0
total2 = 0
input(‘Бросай кости, жми Enter!n’)
while score1 < 6 and score2 < 6 and games
die1 = random.randint(1, 6)
die2 = random.randint(1, 6)
total1 = die1 + die2
print(die1, die2)
print(total1,’n’)
input(‘Теперь я, жми Enter!n’)
die3 = random.randint(1, 6)
die4 = random.randint(1, 6)
total2 = die3 + die4
print(die3, die4)
print(total2,’n’)
if total1 > total2:
score1 += 1
games += 1
elif total1 < total2:
score2 += 1
games += 1
else:
games += 1
print(‘Ничьяn’)
print(‘Счёт’, score1, ‘:’, score2,’n’)
input(‘Жми Enter!n’)
if score1 > score2:
input(‘Ты победил! Жми Enter для выхода’)
elif score1 < score2:
input(‘Я победил! Жми Enter для выхода’)
else:
input(‘Победила дружба! Жми Enter для выхода’)
Этот код уже может показаться немного длинным и непонятным, но зато, во-первых, мы уже написали настоящую игру (пусть пока и без графики), а во-вторых, ничего сложного здесь нет, сейчас всё объясним.
Сначала вызываем уже знакомый модуль random , затем задаем следующие переменные, которые перед началом игры будут, разумеется, равны 0:
- score1 и score2 для подсчета побед, наших и компьютера;
- games для количества партий (их мы затем ограничим, чтобы предотвратить долгую игру в случае частых ничьих);
- die1, die2, die3, die4 для бросков отдельных костей;
- total1 и total2 для подсчета суммы очков в каждом броске двух игроков: для игрока-человека это будет сумма total1 костей die1 , die2 , а для компьютера — total2 и die3 , die4 соответственно.
Далее идет призыв к началу игры (игрок первым увидит именно это), а затем программа входит в цикл:
while score1 < 6 and score2 < 6 and games < 11:
Как видим, условий несколько, и они соединены операторами and . Это значит, что программа выйдет из цикла, если одно из них перестанет быть истинным (то есть либо score1 или score2 станет равным 6, либо games будет равно 11). Играем почти теннисный сет: как только один из игроков выигрывает шесть партий, игра заканчивается его победой. При этом количество партий не может быть больше 11. Таким образом, если из-за ряда ничьих в партиях ни один из игроков не одержит 6 побед, игра всё равно закончится после 11-й партии.
Теперь бросает кости игрок, а программа считает их сумму ( total1 = die1 + die2 ) и печатает результат. После по нажатию Enter то же самое делает компьютер (у него сумма будет total2 = die3 + die4 ). Конечно, на самом деле вся игра выполняется целиком и полностью силами ГСЧ, но так уж устроено большинство простых игр: даже за игрока здесь всё решает рандом. А мы переходим к самой важной части программы: двум блокам if-elif-else . Первый из них является частью цикла while :
if total1 > total2:
score1 += 1
games += 1
elif total1 < total2:
score2 += 1
games += 1
else:
games += 1
print(‘Ничьяn’)
print(‘Счёт’, score1, ‘:’, score2,’n’)
input(‘Жми Enter!n’)
Тут тоже всё просто: если наша сумма больше, мы получаем очко, если в партии выиграл компьютер, очко начисляется ему, а при ничьей — никому, но партия засчитывается как сыгранная в любом случае. Далее на экран выводится текущий счет и предлагается играть дальше. Как только выполняется условие цикла while , то есть один из игроков одержал 6 побед или количество сыгранных партий достигло 11, программа выходит из цикла и переходит к последнему блоку:
if score1 > score2:
input(‘Ты победил! Жми Enter для выхода’)
elif score1 < score2:
input(‘Я победил! Жми Enter для выхода’)
else:
input(‘Победила дружба! Жми Enter для выхода’)
Первое условие с if выполняется, когда игрок выиграл больше партий, чем компьютер. Условие с elif — если удачливее был компьютерный оппонент. Но что если партий было сыграно 11 и при этом игроки выиграли равное число? Для этого мы и добавили блок с else , выполнение которого выдаст на экран примирительный текст.
Осталось добавить, что Python проверяет условия последовательно и исполняет первое, которое является истинным: то есть сначала всегда будет проверено условие с if , затем с elif (если их несколько, то одно за другим сверху вниз) и последним с else . Таким образом, если в сложной программе вдруг оказались выполнены сразу несколько условий, будет исполнен только тот блок, который стоит первым: учитывайте это при написании кода.
Источник: timeweb.cloud
Условный оператор IF: принципы работы
Условные операторы широко используются в программировании. С их помощью удается решать различные задачи. В процессе изучения статьи будут приведены примеры использования предложений с IF на разных языках разработки. Информация, представленная далее, пригодится каждому начинающему специалисту. Это база, без которой дальнейшая разработка программного обеспечения окажется невозможной.
Условные предложения в английском языке
Перед изучением IF в программировании необходимо выяснить, что вообще обозначает IF. Для этого придется рассмотреть условные предложения в английском. Эта информация поможет быстрее разобраться с принципами применения IF-компонентов в разработке программного обеспечения.
Conditional sentences или conditionals – это условные предложения. Они являются сложноподчиненными. Пригодятся в случаях, когда необходимо рассказать о реальных или нереальных действиях/событиях, находящихся в зависимости от тех или иных условий.
Условные предложения состоят из двух частей:
- main clause – главное предложение;
- if-clause – придаточное предложение условия.
«If you had time, we will go for a walk. – Если у тебя было бы время, мы пойдем на прогулку», – это один из примеров использования условных предложений.
If-clause обозначает условие, а main clause – результат. В каком порядке располагаются соответствующие компоненты, не играет никакой роли: сначала в предложении может прописываться результат, а затем действие, и наоборот. Порядок на смысл не влияет – только на факт постановки запятой в высказывании.
Если заданное условие стоит в самом начале предложения, оно будет отделяться запятой: if he is playing tennis, I will come – Если он играет в теннис, я приду. В противном случае запятая не ставится: She will stay at home if it is raining – Она останется дома, если будет дождь.
Типы условных предложений
В английском языке рассматриваемые конструкции бывают нескольких видов. Всего в нем поддерживаются предложения пяти видов:
- zero conditional – условные предложения нулевого типа;
- first conditional – предложения первого типа;
- second conditional – второй тип предложений;
- third conditional – предложения третьего типа;
- mixed conditionals – смешанный тип условных предложений.
Second и Third Conditionals – это «нереальные» условные предложения. Они выражают воображаемые теоретические ситуации. Ключевые идеи в таких высказываниях или невозможны, или маловероятны.
Для грамотного применения «условия» в разработке программного обеспечения сначала необходимо понимать, как ими оперировать в английском языке. Этот момент обеспечивает логику суждений.
Нулевой тип
Нулевой тип поддерживает условие и результат, которые являются реальными. Они относятся к настоящему такие предложения строятся по принципу If / When + Present Simple в условии и Present Simple в основной части.
Такой вариант используется, если описываются:
- Известные всем факты: If you mix red with yellow, you get orange.
- Законы природы: If you put fish out of water, it dies.
- Условия, которые точно приведут к определенному результату: If she eats peanuts, She has an allergic reaction.
В соответствующих высказываниях нулевого типа «условие» можно заметить на when. Смысл в данном случае не потеряется.
Первый тип
Строится по принципу If + present simple/ present continuous + основное высказывание с Future Simple can/must + infinitive Imperative.
Они применяются, когда речь идет о вероятных событиях в будущем. Условие может привести к определенному результату, но не со 100% вероятностью. Применяется для описания:
- Вероятных ситуаций в настоящем или будущем: If she is working, I will disturb her.
- Предложения сделать что-то: If you stay, we will have dinner together.
- Угроз и предупреждений: Listen, if you don’t return the sign, I gotta take it outta your paycheck, are we clear?
Перечисленные конструкции в той или иной форме встречаются в программировании. Чтобы лучше ими пользоваться, рекомендуется сначала изучить их в английском языке.
Второй тип
Строится по принципу If + past Simple / Past Continuous, а также Would / could / should / might + Infinitive.
Встречается в ситуациях, при которых условие и результат нереальные. Они являются воображаемыми, представляемыми в теории. Соответствующие конструкции помогают описывать:
- Воображаемые ситуации, которые происходят в настоящем или будущем: If I were taller, I might be a good basketball player или If it was me dying on the sidewalk, you’d walk right over me!
- Предложения сделать что-будь. Такой вариант является более мягким, чем в случае с первым типом: If you stayed, we could cook dinner together.
- Разнообразные советы: If I were you, I would talk to him или If I were invisible for one day, I could play tricks on my friends.
В условных высказываниях I, he, she, it was меняется на I, he, she, it where.
Третий тип
Строится по форме: If Past Perfect / Past Perfect Continuous и Would / Could + have + past participle. Третий тип высказываний тоже предусматривает использование в нереальных ситуациях. Это варианты, при которых что-то в прошлом могло произойти, но этого не случилось. Из-за этого вероятный результат остался вне зоны досягаемости. Характеризуется упущенными возможностями.
При помощи соответствующего типа описывают:
- Воображаемые ситуации из прошлого: If I hadn’t applied for a linguistics program, I wouldn’t have gotten a job at site.
- Сожаления о прошлом: If we had taken a taxi, we wouldn’t have missed the plane.
- Критику действий других людей: You wouldn’t have been tired yesterday if you had gone to bed earlier.
Есть еще один вариант условных конструкций в английском языке. Он встречается достаточно часто в реальной жизни.
Смешанный тип
Смешанный тип условных конструкций встречается, когда условие и результат не являются однородными в плане времен. Здесь предусматриваются следующие варианты:
- If + Past Perfect/ Past Perfect Continuous и Would / Could + infinitive. Используется конструкция к ситуации, когда условие относится к нереальному прошлому, а результат – к нереальному настоящему: If she had been born in the United States, she wouldn’t need a visa to work here.
If + Past Simple + Would / Could + have + past participle. Это ситуации, в которых присутствуют воображаемые условия в настоящем и не случившиеся результаты в прошлом: If you were more attentive, you would not have made so many mistakes in your final test.
Будущее после «условия»
Стоит обратить внимание, что высказывания в будущем времени (I would have, he will и так далее) в части с условием не встречается. Это правило действует даже для ситуаций, при которых описываемое событие еще не произошло. Из-за этого обе части условных конструкций на русский язык обычно переводятся в будущем времени. Это влечет за собой некую путаницу.
Future Simple используется только в main clause. Исключение есть, но только одно – это вежливые просьбы. В этом случае допускается после IF применение форм will / can или would / could: I’ll be grateful if you’ll go to her mother или If you would sign here, please.
Последний пример предусматривает пропуск main clause. Это не является нормой, но подобные ситуации вероятны в разговорной речи. Они встречаются в фильмах и песнях.
Условные высказывания без IF
Условные предложения могут быть без «дополнительных» конструкций. Такой результат достигается при инверсии. Он возможен только при использовании условных предложений первого, второго и третьего типов:
Were I the head of this company, I would hire less staff.
Соответствующий вариант формирования предложений больше относится к формальному английскому языку. Он не встречается в школьной программе и университетах.
В программировании
Конструкции с IF распространены не только в английском языке, но и в программировании. После формирования общих принципов использования «ифа» в жизни, можно попытаться задействовать его в разработке.
Условные предложения – это условные операторы. С их помощью значения некоторых выражений принимаются за определение дальнейших алгоритмов поведения в программе. За счет применения IF осуществляется выбор действия из нескольких предложенных вариантов.
Опирается соответствующая конструкция на булеву логику. Результат вычислений заданного выражения может принимать исключительно два значения:
Если условие выступает в качестве истинного, программное обеспечение будет работать по одному, заранее обозначенному алгоритму. В противном случае управление перейдет к другому оператору или будет «развиваться» по второму алгоритму. Такое поведение называется ветвлением.
Виды условных операторов
Задумываясь над тем, как использовать If to the programming, необходимо помнить, что ветвления бывают разными. Они могут быть:
- постфиксными;
- тернарными;
- с одной ветвью;
- с двумя ветвями;
- с несколькими ветвями (более двух);
- с множественным выбором.
К условным операторам также относятся разнообразные циклы:
- for;
- while;
- for–each;
- бесконечные.
Циклы могут гармонично дополнять программный код, реализованный через ветвление. Соответствующий вопрос далее рассмотрен не будет. Это более сложные операции, с которыми новички работают крайне редко. Для начала необходимо изучить варианты ветвления.
Одна ветка
Ответ на вопрос о том, как использовать IF, зависит от того, чего именно хочет добиться разработчик. Элементарный вариант применения соответствующей конструкции – это «одиночное» ветвление.
В данном варианте при обработке заданного требования алгоритм выполняется, если условие, написанное в коде, получает значение истины (true). Ниже – форма реализации в JavaScript. При помощи соответствующего синтаксиса можно реализовать «одиночное» ветвление:
Здесь сначала указывается ключевое слово, а затем – в круглых скобка условие. В фигурных – алгоритм, необходимый для непосредственной реализации. Блок выполняется, если condition будет являться в истинным. Если значение соответствующего выражения выступает в качестве false (лжи), управление приложением будет переходить к следующему написанному в исходном коде оператору.
Двойная ветвь
Одна ветка в приложении – это элементарный вариант, поэтому необходимо рассмотреть другие примеры с IF. Более сложной конструкцией выступает двойное ветвление. В данном случае используется дополнительное слово else. Применение такого предложения в программном коде позволяет значительно сократить его размеры.
В соответствующих предложениях используются два блока:
- алгоритм, который будет выполняться, если условие является истиной;
- инструкция, используемая системой при значении выражения false.
Синтаксический вариант формирования записи на JavaScript окажется следующим:
В соответствующей конструкции всегда выполняется хотя бы одно из имеющихся условий. Оба написанных блока не могут применяться одновременно ни при каких обстоятельствах. После завершения рассматриваемого предложения программа перейдет к обработке следующего за ним оператора.
Множественное ветвление
Множественное ветвление используется для реализации более сложных проектов. Они подойдут тем, кто уже понял, как использовать if в разработке. Такой вариант формирования предложения используется при проверке нескольких условий для их дальнейшей реализации.
Форма представления множественного ветвления JavaScript выглядит так:
Работает соответствующая конструкция по простейшему алгоритму:
- Сначала происходит проверка condition1. Если оно истинно, выполняется соответствующий ему блок кода.
- При значении condition1 = false, программа переходит к проверке condition2.
- Принимается решение о дальнейших действиях – реализации блока, характерного для condition2, или переходе к condition3 и так далее.
- Если ни одно из записанных условий не является истиной, программа будет обрабатывать алгоритм, заданный при помощи фрагмента, написанного после else без дополнительных параметров.
Множественное ветвление в разработке используется для реализации не только простых проектов, но и достаточно сложных конструкций. Новичкам с такой формой операторов рекомендуется проявлять осторожность – можно нарушить логику программы. В этом случае исход работы приложения окажется непредсказуемым.
Выбор и switch
Большинство языков программирования поддерживают ветвление с выбором. В Python и JavaScript для этого используется конструкция Switch. Она применяется для реализации одного алгоритма, представленного в нескольких вариациях. Выбор действий базируется за счет полного соответствия условию case.
Необходимо запомнить, что default не является обязательным элементом предложенной формы записи. Его нужно указывать, если хочется задать условие, которое будет выполняться, если соответствие ни с одним case не обнаружено.
Еще один необязательный компонент – это break. Он применяется для того, чтобы прервать работу switch. Управление в данном случае будет переходить к инструкциям и операторам, написанным после соответствующего блока.
Тернарный оператор
Последняя конструкция, связанная с ветвлением, – это тернарный оператор. Он используется не только в JavaScript, но и в других языках разработки. Служит упрощенной формой рассмотренного оператора.
Тернарная «команда» возвращает результат первого или второго выражения, опираясь на факт истинности первоначально «выдвинутого» условия. Синтаксически в JavaScript это выглядит так:
Тернарным оператором выступает выражение. Оно возвращает то или иное значение. Имеет три операнда:
- условие;
- выражение 1;
- выражение 2.
Чтобы разделить условие с выражениями, используется символ «?» (вопросительный знак). Выражения между собой отделяются «:» (двоеточием).
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
Источник: otus.ru
Условные операторы в Java: if-else, switch и «Элвис»
Чтобы эффективно работать с условными операторами на языке Java, необходимо знать, какими они бывают и для каких сценариев подходят. Обсудим это и некоторые нововведения из Java 13.
Условный оператор if
Оператор if позволяет задать условие, в соответствии с которым дальнейшая часть программы может быть выполнена. Это основной оператор выбора, который используется в языке Java. Он начинается с ключевого слова if и продолжается булевым выражением — условием, заключённым в круглые скобки.
В качестве примера рассмотрим простое равенство, при истинности которого программа выведет результат:
if(2 * 2 == 4)
Поскольку условие истинно, в выводе программы мы увидим:
Программа выполняется
Условный оператор if-else в Java
else в языке Java означает «в ином случае». То есть если условие if не является истинным, выводится то, что в блоке else :
if(2 * 2 == 5) < System.out.println(«Программа выполняется»); >else
Условие ошибочно
Это же сработает и без ключевого слова else , но чтобы код был читабельным и логичным, не следует пренебрегать else , как это сделано в следующем примере:
if(2 * 2 == 5) < System.out.println(«Программа выполняется»); >System.out.println(«Условие ошибочно»);
А теперь давайте создадим несколько условий с использованием конструкции if-else . Выглядит это таким образом:
int a = 20; if(a == 10) < System.out.println(«a = 10»); >else if(a == 15) < System.out.println(«a = 15»); >else if(a == 20) < System.out.println(«a = 20»); >else
a = 20
Как видим, только третье условие истинно, поэтому выводится именно a = 20 , а все остальные блоки игнорируются.
Вложенный if
Кроме того, может производиться проверка сразу на несколько условий, в соответствии с которыми выполняются разные действия. Представим, что у нас есть две переменные, на основе которых можно создать два условия:
int a = 20; int b = 5; if(a == 20) < System.out.println(«a = 20»); if(b == 5)< System.out.println(«b = 5»); >>
a = 20 b = 5
В результате программа заходит в оба блока и делает два вывода, потому как оба условия истинны.
«Элвис»
По сути, это сокращенный вариант if-else . Элвисом его прозвали за конструкцию, которая напоминает причёску короля рок-н-ролла — ?: . Данный оператор также принято называть тернарным. Он требует три операнда и позволяет писать меньше кода для простых условий.
Само выражение будет выглядеть следующим образом:
int a = 20; int b = 5; String answer = (a > b) ? «Условие верно» : «Условие ошибочно»; System.out.println(answer);
Условие верно
Как видите, с помощью тернарного оператора можно существенно сократить код. Но не стоит им злоупотреблять: для сложных условий используйте другие операторы выбора Java, дабы не ухудшать читаемость кода.
Условный оператор switch в Java
Оператор выбора switch позволяет сравнивать переменную как с одним, так и с несколькими значениями. Общая форма написания выглядит следующим образом:
switch(выражение) < case значение1: // Блок кода 1 break; case значение2: // Блок кода 2 break; case значениеN: // Блок кода N break; default : // Блок кода для default >
Рассмотрим распространённый пример с днями недели:
public class Main < //Создадим простое перечисление дней недели private static enum DayOTheWeek< MON, TUE, WED, THU, FRI, SAT, SUN >public static void main(String[] args) < //Выбираем понедельник (MON) var dayOfTheWeek= DayOTheWeek.MON; switch (dayOfTheWeek)< case MON: System.out.println(«Понедельник»); break; case TUE: System.out.println(«Вторник»); break; default: System.out.println(«Другой день недели»); >> >
Понедельник
break при этом прерывает процесс проверки, поскольку соответствие условия уже найдено. Но начиная с Java 13, вместо break в условном операторе switch правильнее использовать yield — ключевое слово, которое не только завершает проверку, но и возвращает значение блока.
Программист АСУТП АО «Гринатом» , Новосибирск , От 60 000 до 80 000 ₽
Кроме того, с 12 версии Java конструкция switch-case также претерпела некоторые изменения. Если вы используете в работе IntelliJ IDEA, данная среда разработки сама подскажет, как оптимизировать switch-case под новые версии.
Вот преобразованный код из нашего примера с некоторыми изменениями:
public class Main < private static enum DayOTheWeek< MON, TUE, WED, THU, FRI, SAT, SUN >public static void main(String[] args) < //В этот раз выберем вторник var dayOfTheWeek= DayOTheWeek.TUE; String result = switch (dayOfTheWeek)< case MON ->»Понедельник»; case TUE, WED, THU, FRI -> < yield «Любой будний день, кроме понедельника.»; >default -> «Выходной день»; >; System.out.println(result); > >
Вывод:
Любой будний день, кроме понедельника.
Задачи на условные операторы Java
Определите, что выведут в консоль следующие примеры, без проверки в компиляторе.
1. В переменной min лежит число от 0 до 59. Определите в какую четверть часа попадает это число (в первую, вторую, третью или четвертую):
int min = 10; if(min >= 0 min else if(min >= 15 min else if(min >= 31 min else
7 практических заданий с собеседования на позицию Junior Java Developer
2. Что выведет следующий код:
int month = 3; String monthString; switch (month) < case 1: monthString = «Январь»; break; case 2: monthString = «Февраль»; break; case 3: monthString = «Март»; break; case 4: monthString = «Апрель»; break; case 5: monthString = «Май»; break; case 6: monthString = «Июнь»; break; case 7: monthString = «Июль»; break; case 8: monthString = «Август»; break; case 9: monthString = «Сентябрь»; break; case 10: monthString = «Октябрь»; break; case 11: monthString = «Ноябрь»; break; case 12: monthString = «Декабрь»; break; default: monthString = «Не знаем такого»; break; >System.out.println(monthString);
3. Какое значение будет присвоено переменной k :
int i = -10 * -1 + (-2); int k = i < 0 ? -i : i; System.out.println(k);
Пишите свои ответы к задачам по условным операторам в Java.
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Поделиться
Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.
Курс «Основы программирования на Python»
Старт 3 июля, 2 месяца, онлайн, от 6664 до 19 990 ₽ в месяц
Курс «SQL-Injection Master»
Старт 10 июля, 3 месяца, онлайн, от 11 997 до 35 990 ₽ в месяц
Что думаете?
Комментирую от имени компании
Показать все комментарии
Фотография
Обсуждают сейчас
Всегда горит жепа с такого.
Я думаю тот, кто хоть раз с таким столкнулся, меня прекрасно поймет
Вы описали бывшие работы названием фильма. Мы представили их в Midjourney
2 часа назад
Вообще феномен плохих работ на старте — это ужасная штука. Почему-то в России, а может и ещё гдето, просто я не в курсе, считается нормальным устроиться на самую стремную галеру в мире, чтобы набраться опыта, и скакать дальше по нормальным работам. А ещё хуже то, что в России (опять же, может и ещё где) считается обычным делом относиться к сотрудникам как к скотам и рабам на ферме хозяина, хотя само сотрудничество подразумевает именно СОТРУДНИЧЕСТВО. Ужасная хрень, и все эти штуки типа «опишите работу названием фильма», которые неизменно вызывают негативные ассоциации, прелестно всё иллюстрируют
Вы описали бывшие работы названием фильма. Мы представили их в Midjourney
2 часа назад
Я стопудово уверен в том, что мама Илона Маска в конце концов всё сольёт, зная о том влиянии, которое она оказывает на сына
Источник: tproger.ru