end; }
В языке Паскаль оператор присваивания записывается в
виде последовательности символов «:=», а в языке C++ – так же,
как и в Python – с помощью одного знака «=». Оформление в
языке Паскаль более сложное: после условия пишут слово then
(по-английски – тогда), а составной оператор «охвачен» опера-
торными скобками – служебными словами begin и end. В язы-ке С++ условие после if обязательно заключается в круглые скобки, а составной оператор ограничивается фигурными скоб-ками.
Вложенные условные операторы
Внутри условного оператора могут находиться любые опе-раторы, в том числе и другие условные операторы.
Например, пусть возраст Андрея записан в переменной ageA, а возраст Бориса – в переменной ageB. Нужно определить, кто из них старше. Одним условным оператором тут не обой-тись, потому что есть три возможных результата: старше Анд-рей, старше Борис или оба одного возраста. Решение задачи можно записать так:
if ageA > ageB:
print( "Андрей старше" ) else:
if ageA == ageB:
print( "Одного возраста" ) else:
print( "Борис старше" )
Условный оператор, проверяющий равенство (он выделен
фоном), находится внутри блока «иначе» (else), поэтому он на-
зывается вложенным условным оператором. Использование вложенных условных операторов позволяет выбрать один из не-скольких (а не только из двух) вариантов.
Напишите другой вариант решения последней задачи. Сколько всего вариантов можно придумать?
37 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Если после else сразу следует еще один оператор if, мож-
но применить так называемое «каскадное» ветвление с ключе-
выми словами elif (сокращение от else-if). Если очередное
условие ложно, выполняется проверка следующего условия и т.д.
if ageA > ageB:
print( "Андрей старше" ) elif ageA == ageB:
print( "Одного возраста" ) else:
print( "Борис старше" )
Обратите внимание на отступы: слова if, elif и else находят-
ся на одном уровне.
В цепочке операторов if-elif-elif-… срабатывает пер-
вое истинное условие. Например, программа
cost = 1500
if cost < 1000:
print( "Скидок нет." ) elif cost < 2000:
print( "Скидка 2%." ) elif cost < 5000:
print( "Скидка 5%." ) else:
print( "Скидка 10%." )
выводит «Скидка 2%.», хотя условие cost < 5000 тоже выполня-ется.
Что выведет эта программа при x = –3? x = 0? x = 123?
if x >= 0:
if x > 0: print( 1 ) else: print( 0 )
else:
print( -1 )
Перепишите её, используя цепочку if-elif-else.
38 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Сложные условия
Предположим, что ООО «Кнут и Пряник» набирает сотруд-ников, возраст которых от 25 до 40 лет включительно. Нужно написать программу, которая запрашивает возраст претендента и выдает ответ: «подходит» он или «не подходит» по этому при-знаку.
Какое же условие должно быть истинно для того, чтобы че-ловека приняли на работу? Одного условия «возраст >= 25» не хватает, это условие соблюдается и для людей старше 40 лет. С другой стороны, условия «возраст <= 40» тоже не хватает, так как оно выполняется и для школьников. В этой задаче нужно, чтобы два условия выполнялись одновременно: «возраст >= 25» и «возраст <= 40».
Пусть в переменной age записан возраст сотрудника.
Запишите решение задачи с помощью вложенных условных операторов.
Эту задачу можно решить с помощью вложенного условного оператора, но решение получается некрасивое: оно запутанное и, кроме того, один и тот же ответ «не подходит» приходится вы-водить в двух местах программы.
Почти во всех языках программирования в условном опе-раторе можно использовать такое условие:
if age >= 25 and age <= 40:
print( "подходит" ) else:
Достарыңызбен бөлісу: |