Использование оператора else и комбинации операторов else if

Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) — основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

Как переводятся названия частей

Всё предельно просто:

  • if – если. Всегда стоит перед остальными условиями. На одной строчке с ним в скобках должно находиться сравниваемое выражение, а также открывающаяся фигурная скобка, а перед закрывающей – действие, которое должно быть выполнено при полном соответствии;
  • elseif – иначе, если. Указывать следует в случае, когда первое условие оказалось неправильным, но нужно добавить ещё одно сравнение. Также, можно записать компонент двумя словами: else if. Это приведёт к одинаковому результату. В одном условии может присутствовать в неограниченном количестве;
  • else – иначе. Срабатывает, когда остальные условия оказались ложными (недействительными).

Обязательной частью является только if. При отсутствии остальных параметров сравнения ложные условия ни приведут ни к чему – например, изменение переменной не будет произведено.

Использование операторов else и else if

Создайте переменную

var numPencils:Number = 12;

Введите if()

Внутри круглых скобок проверьте на истинность выражение: numPencils < 9

if( numPencils < 9 )

Внутри фигурных скобок напишите инструкцию, которая будет исполнена в случае истинности проверяемого выражения: «В коробке меньше 9 карандашей.»

if( numPencils < 9 ){ trace( "В коробке меньше 9 карандашей." ); }

После закрывающей фигурной скобки запишите else if, который проверит на истинность другое выражение, например: numPencils == 9

else if( numPencils == 9 )

Внутри фигурных скобок напишите фразу, которая будет выводится командой trace в панель Output в случае истинности проверяемого выражения: «В коробке ровно 9 карандашей.»

else if( numPencils == 9 ){ trace( «В коробке ровно 9 карандашей.» ); }

После закрывающей фигурной скобки запишите оператор else, a в фигурных скобках после него финальную фразу, которая выведется только тогда, если все условия, проверенные до него оказались ложными: «В коробке больше 9 карандашей.»

else{ trace( «В коробке больше 9 карандашей.» ); }

У Вас должно получиться, примерно, следующее

Нажмите Ctrl + Enter.

В зависимости от того какое значение Вы присвоили переменной numPencils выполнится одна из трех инструкций, ассоциированных с операторами if, else if или else и в панели Output появится соответствующая фраза.

Дополнительная информация

Любое выражение может быть протестировано условным оператором if на истинность или ложность. Значения переменных типа Boolean по умолчанию, как Вы уже знаете, могут быть либо true либо false. Поэтому, если у Вас, например, имеется переменная

var adminStatus:Boolean = true;

тогда результат проверки

if( adminStatus )

будет оценен как true. Для того чтобы протестировать на обратный результат используйте символ » ! «

if( !adminStatus )

будет соответствовать false. Значения переменных другого типа могут быть протестированы таким же образом, но Вы должны четко понимать, как эти значения интерпретируются ActionScript. Например, если тип переменной num1 установлен как Number, то if( num1 ) будет оценено как true, если переменная num1 не равна 0 или не является null. В противном случае будет false.

Переменные строкового типа будут оцениваться как true, если они не пустые или не null. Тоже самое применимо и к массивам: они будут оцениваться как true, если они не пустые или не null.

Читайте также:  Установка WPS office на Ubuntu 20.04

Более сложные типы данных будут оцениваться как true, если они не null, например:

if( mcSquare1 )

будет true, если экземпляр такого MovieClip’а существует или будет false, если Вы умышленно написали

mcSquare1 = nullПредыдущий урок: << Условный оператор if Следующий урок: Логические операторы И (&&), ИЛИ (||) >>Пожалуйста, включите JavaScript, чтобы увидеть комментарии.

Команды, синтаксис и примеры

С оператором if, который является типом условного оператора, вы можете выполнять различные действия в зависимости от указанных условий. Это эффективно дает системе возможность принимать решения.

Примером простейшей формы оператора if будет:

кол = 5 если [$ count == 5] затем echo «$ count» фи

В этом примере переменная «count» используется для указания условия, которое используется как часть оператора if. Перед выполнением оператора if переменной «count» присваивается значение «5». Затем оператор if проверяет, является ли значение «count» «5». В этом случае выполняется оператор между ключевыми словами «then» и «fi», в противном случае выполняются любые операторы, следующие за оператором if. Ключевое слово “fi” – “если” пишется в обратном направлении. Язык сценариев bash использует это соглашение для обозначения конца сложного выражения, такого как оператор if или case.

Оператор “echo” выводит свой аргумент, в данном случае значение переменной “count”, в окно терминала. Отступ кода между ключевыми словами оператора if улучшает читабельность, но не является обязательным.

Если у вас есть ситуация, когда фрагмент кода должен выполняться только в том случае, если условие не является истинным, вы можете использовать ключевое слово «else» в операторе if, как в этом примере:

кол = 5 если [$ count == 5] затем echo «$ count» еще echo «count is 5» фи

Если условие «$ count == 5» является истинным, система выводит значение переменной «count», в противном случае она выводит строку «count не 5».

Если вы хотите провести различие между несколькими условиями, вы можете использовать ключевое слово «elif», которое происходит от «else if», как в этом примере:

если [$ count == 5] затем эхо «количество пять» elif [$ count == 6] затем эхо «считать шесть» еще эхо «ничего из вышеперечисленного» фи

Если «count» равно «5», система выводит «count is Five». Если «count» не «5», а «6», система выдает «count is six». Если это не «5» или «6», система выводит «ничего из вышеперечисленного».

Как вы уже догадались, у вас может быть любое количество «elif» предложений. Пример с несколькими условиями “elif”:

если [$ count == 5] затем эхо «количество пять» elif [$ count == 6] затем эхо «считать шесть» elif [$ count == 7] затем эхо «кол-во семь» elif [$ count == 8] затем эхо «считать восемь» elif [$ count == 9] затем эхо «кол-во девять» еще эхо «ничего из вышеперечисленного» фи

Более компактным способом написания таких операторов с несколькими условиями является метод case. Он функционирует подобно оператору if с несколькими предложениями «elif», но является более кратким. Например, приведенный выше фрагмент кода можно переписать с помощью оператора case следующим образом:

регистр «$ count» в 5) эхо «количество пять» ;; 6) эхо «считать шесть» ;; 7) эхо «кол-во семь» ;; 8) эхо «считать восемь» ;; 9) эхо «кол-во девять» ;; *) эхо «ничего из вышеперечисленного» ESAC

Читайте также:  Бесплатный аккаунт разработчика Apple: как создать и связать с Xcode?

Операторы if часто используются внутри циклов for или while, как в этом примере:

кол = 1 сделано = 0 в то время как [$ count -le 9] делать спать 1 ((количество ++)) если [$ count == 5] затем Продолжить фи echo «$ count» сделанный эхо готово

Вы также можете иметь вложенные операторы if. Простейшее вложенное выражение if имеет вид: if … then … else … if … then … fi … fi. Однако if-оператор может быть вложен с произвольной сложностью.

Смотрите также, как передать аргументы скрипту bash, который показывает, как использовать условные выражения для обработки параметров, переданных из командной строки.

Оболочка bash предоставляет другие программные конструкции, такие как for-loop, while-loop и арифметические выражения.

Условный оператор if

Условный оператор if (англ. “если”) позволяет разветвлять выполнение программы в зависимости от логических величин, т.е. результатов работы операторов сравнения, которые мы рассмотрели выше, а также напрямую от логических переменных.

if (лог. величина) { // выполняется, если лог. величина — true }

Оператор else (англ. “иначе”) работает в паре с оператором if и позволяет предусмотреть действие на случай невыполнения if:

if (лог. величина) { // выполняется, если лог. величина — true } else { // выполняется, если лог. величина — false }

Также есть третья конструкция, позволяющая ещё больше разветвить код, называется она else if:

if (лог. величина 1) { // выполняется, если лог. величина 1 — true } else if (лог. величина 2) { // выполняется, если лог. величина 2 — true } else { // выполняется иначе }

Посмотрим на все эти операторы в действии в большом примере:

// при выполнения одного действия // внутри условия, {} не обязательны if (a > b) c = 10; // если a больше b, то c = 10 else c = 20; // если нет, то с = 20 // вместо сравнения можно использовать лог. переменную boolean myFlag, myFlag2; // если myFlag true, то c присвоить 10 if (myFlag) c = 10; // сложные условия // если оба флага true, то c присвоить 10 if (myflag && myFlag2) c = 10; // при выполнении двух и более действий // внутри условия, {} обязательны! if (myFlag) { с = 10; b = c; } else { с = 20; b = a; } byte buttonState; if (buttonState == 1) a = 10; // если buttonState 1 else if (buttonState == 2) a = 20; // если нет, но если buttonState 2 else a = 30; // если и это не верно, то вот

Вот так и работает условный оператор if, позволяя управлять программой и создавать разветвлённые действия в зависимости от разных условий. Обратите внимание на последний блок в примере выше, там где используется else if для выбора действия в зависимости от значения одной и той же переменной. Существует оператор выбора switch, позволяющий сделать код более красивым. О нём поговорим чуть ниже.

Особенность boolean

В уроке о типах данных я упоминал о том, что boolean принимает значение true, если присвоить ему отличное от нуля число, то есть оператору if можно скормить любое число, и он вернёт true в любом случае, кроме нуля. Это бывает удобно в некоторых случаях, но также может и приводить к ошибкам, которые трудно отловить. if (50) {} – да, выполнится код по этому условию.

Порядок условий

Порядок условий играет очень большую роль при оптимизации кода и попытке сделать его более быстрым в некоторых случаях. Суть очень проста: логические выражения/величины проверяются слева направо, и если хоть одно значение делает всё выражение неверным (ложью), дальнейшая проверка условий прекращается. Например если в выражении

Читайте также:  Как включить вай фай на ноутбуке hp и установить драйвера на wi-fi

if (a && b && c) { // делать что то }

хотя бы а имеет значение false, проверка остальных выражений (b и c) уже не выполняется. Когда это может быть важно: например, есть какой-то флаг и выражение, которое вычисляется прямо в условии и сразу проверяется. В таком случае если флаг опущен, микроконтроллер не будет тратить время на лишние вычисления. Например:

if (flag && analogRead(0) > 500) { // делать что то }

Если флаг опущен, микроконтроллер не будет тратить лишние 100 мкс на работу с АЦП, и сразу проигнорирует остальные логические выражения. Это конечно очень мало, но иногда и 100 мкс решают, просто помните о том, что порядок условий имеет значение.

Инкапсуляция переменных в Kotlin

Вместе с выражениями if вводится новый концепт — область видимости, которая является способом инкапсуляции переменных через использование фигурных скобок.

Представьте, что вам нужно посчитать оплату, которую вам должен заплатить клиент. Условия сделки заключаются в том, что вы зарабатываете 25 долларов каждый час до 40 часов работы. После этого времени вы получаете по 50 долларов в час.

Используя Kotlin, оплату можно посчитать следующим образом:

Java var hoursWorked = 45 var price = 0 if (hoursWorked > 40) { val hoursOver40 = hoursWorked — 40 price += hoursOver40 * 50 hoursWorked -= hoursOver40 } price += hoursWorked * 25 println(price)

1234567891011 var hoursWorked = 45 var price = if (hoursWorked > 40) { val hoursOver40 = hoursWorked 40 price += hoursOver40 * 50 hoursWorked -= hoursOver40}price += hoursWorked * 25 println(price)

Данный код принимает количество часов и проверяет, не превышает ли оно 40. Если да, то код вычисляет количество часов, превышающее 40, и умножает его на 50 долларов, а затем добавляет результат к цене. Затем код вычитает количество часов, превышающих 40, из отработанных часов. Остальные отработанные часы умножаются на 25 долларов и прибавляются к общей стоимости.

Результат примера выглядит следующим образом:

Shell 1250

1 1250

Интересен код внутри выражения if. Здесь объявляется новая константа hoursOver40 для хранения количества часов, превышающих 40. Вы можете использовать ее внутри оператора if.

Поскольку 1 < 2 истинно, все выражение также должно быть истинным. Поэтому еще раз проверка name не выполняется. Это пригодится позже, когда вы начнете работать с более сложными типами данных.

Но что произойдет при попытке использовать его в конце кода свыше?

Java … println(price) println(hoursOver40)

1234 ... println(price)println(hoursOver40)

Будет получена ошибка:

Shell Unresolved reference: ‘hoursOver40’

1 Unresolved reference: ‘hoursOver40’

Ошибка сообщает, что вам нельзя использовать константу hoursOver40 вне области видимости, в которой она была создана. Обратите внимание, данная константа была создана в тело if выражения.

В данном случае выражение if вводит новую область видимости, за пределами которой константа становится невидимой.

Каждая область видимости может использовать переменные и константы из родительской области видимости main(). В примере выше в области видимости внутри выражения if используются переменные price и hoursWorked, которые были созданы в родительской области видимости.