Php if else примеры. Условия if и else. Выбор по умолчанию

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

Синтаксис записи оператора выбора if else:

If (/*проверяемое условие*/) { /*тело оператора выбора 1*/; } else { /*тело оператора выбора 2*/; }

Читается так: «Если проверяемое условие истинно, то выполняется тело оператора выбора 1 , иначе (то есть проверяемое условие ложно) выполняется тело оператора выбора 2 «. Обратите внимание на то, как записан оператор if else . Слово else специально сдвинуто вправо для того чтобы программный код был понятен и его было удобно читать.

Рассмотрим задачу с предыдущей темы, с использованием if else . Напомню условие задачи: «Даны два числа, необходимо их сравнить».

// if_else.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include using namespace std; int main(int argc, char* argv) { int a, b; cout << "Vvedite pervoe chislo: "; cin >> a; cout << "Vvedite vtoroe chislo: "; cin >> b; if (a >= b) // если a больше либо равно b, то { cout << a << " >= " << b << endl; } else // иначе { cout << a << " <= " << b << endl; } system("pause"); return 0; }

В данном коде нас интересуют строки 14-20 . Эти строки читаются так: если a (первое число) больше либо равно b (второе число), то выполнить оператор вывода в строке 16

Cout << a << " >= " << b << endl;

иначе выполнить оператор вывода в строке 19

Cout << a << " <= " << b << endl;

В данном ифе мы используем операции соотношений >= и <= . Условие перехода не совсем правильно, так как условие будет ложно только в том случае, если первое число будет меньше второго, во всех остальных случаях условие истинно. Значит, строку 19 нужно записать так

Cout << a << " < " << b << endl; // в кавычках записать не меньше или равно, а просто меньше.

А вот так сработала программа (см. Рисунок 1).

Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Для продолжения нажмите любую клавишу. . .

Рисунок 1 — Оператор выбора if else

Покажу еще один пример использования операторов выбора if else (так называемые вложенные операторы if else для множественного выбора).

Условие задачи:
Составить алгоритм находящий значение y, если у=х, при х<0; у=0, при 0<=х<30; у=х 2 , при х>=30;

// inif_else.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include using namespace std; int main(int argc, char* argv) { int x, y; cout << "Vvedite x: "; cin >> x; if (x < 0) { y = x; // выполняется, если х меньше нуля } else { if ((x >= 0) && (x < 30)) { y = 0; // выполняется, если х больше либо равно нуля и меньше 30 } else { if (x >= 30) { y = x * x; // выполняется, если х больше либо равен 30 } } } cout << "y=" << y << endl; system("pause"); return 0; }

В данной задаче возможны три случая:
1-й случай: х < 0 ;
2-й случай: х лежит в пределах от 0 (включая 0) до 30;
3-й случай: х больше или равен 30.

Заметьте новшество!! В 17 строке такую запись: if ((x >= 0) && (x< 30)) , я использовал символы && — это . Операция логического И && необходима для объединения нескольких простых условий в одно составное. В нашем случае необходимо проверить истинность двух условий: первое – x >= 0 , второе – х < 30 . Все проверяемое условие будет истинно, если истинны два простых условия. В математике правильной записью считается такая запись: 0 <= x < 30 , а в С++ правильной записью считается вот такая запись: (x >= 0) && (x < 30) или такая 0 <= x && x < 30 . Кстати круглые скобочки () && () не обязательны, так как условия простые, но для уверенности, я прописываю, всегда, данные скобочки и вам советую.

Разбор частного случая:

Допустим, пользователь ввел число 31. Начиная со строки 12 , выполняется проверка условий. Читается так: «Если х (31 в нашем случае) < 0, то выполнить оператор в строке 14 ». Но так как 31 > 0 условие ложно мы переходим к слову else (иначе) строка 15 . Дальше проверяем, входит ли число 31 в заданный интервал. Читается так: если х>=0 и х<30 то выполнить оператор в строке 19 . Но так как число 31 не входит в заданный интервал, то условие ложно. Подробно строка 17 : программа сначала проверит первое простое условие х >= 0 – оно истинно, а если первое истинно, то программа перейдет к проверке второго простого условия х < 30 – оно ложно. Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция && , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе), здесь у нас последний if , (строка 22 ). Выполняется проверка х >= 30 . Читается так: Если х >= 30 то выполнить оператор, находящийся в строке 24 . Наконец-то условие истинно, итак выполнился оператор в строке 24 . И строка 28 печатает получившееся значение. Ну, все, рассмотрели программу по мельчайшим деталям. Результат работы программы, в случае, если пользователь ввел число 31 (см. Рисунок 2)

Конструкция if

Синтаксис конструкции if аналогичен конструкции if в языке Си:

if (логическое выражение) оператор;
?>

Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true ), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false ), то следующий за if оператор исполнен не будет. Приведем примеры:

if ($a > $b ) echo "значение a больше, чем b" ;
?>

В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true)":

if ($a ) echo "значение a истинно (true) " ;
?>

В следующем примере если переменная $a равна нулю, будет выведена строка "значение a ложно (false)":

if (!$a ) echo "значение a ложно (false) " ;
?>

Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки {...} Пример:

if ($a > $b ) {
echo "a больше b" ;
$b = $a ;
}
?>

Приведенный пример выведет сообщение, "a больше b", если $a > $b , а затем переменная $a будет приравнена к переменной $b . Заметим, что данные операторы выполняются в if .

if (логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif

Обратите внимание на расположение двоеточия (: )! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.

Конструкция elseif

elseif - это комбинация конструкций if и else . Эта конструкция расширяет условную конструкцию if-else .

Приведем синтаксис конструкции elseif :

if (логическое_выражение_1)
оператор_1;
elseif (логическое_выражение_2)
оператор_2;
else
оператор_3;

Практический пример использования конструкции elseif :

if ($a > $b ) {
echo "a больше, чем b" ;
} elseif ($a == $b ) {
echo "a равен b" ;
} else {
echo "a меньше, чем b" ;
}
?>

(PHP 4, PHP 5, PHP 7)

elseif , as its name suggests, is a combination of if and else . Like else , it extends an if statement to execute a different statement in case the original if expression evaluates to FALSE . However, unlike else , it will execute that alternative expression only if the elseif conditional expression evaluates to TRUE . For example, the following code would display a is bigger than b , a equal to b or a is smaller than b :

if ($a > $b ) {
echo "a is bigger than b" ;
} elseif ($a == $b ) {
echo "a is equal to b" ;
} else {
echo "a is smaller than b" ;
}
?>

There may be several elseif s within the same if statement. The first elseif expression (if any) that evaluates to TRUE would be executed. In PHP, you can also write "else if" (in two words) and the behavior would be identical to the one of "elseif" (in a single word). The syntactic meaning is slightly different (if you"re familiar with C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior.

The elseif statement is only executed if the preceding if expression and any preceding elseif expressions evaluated to FALSE , and the current elseif expression evaluated to TRUE .

Note : Note that elseif and else if will only be considered exactly the same when using curly brackets as in the above example. When using a colon to define your if /elseif conditions, you must not separate else if into two words, or PHP will fail with a parse error.

/* Incorrect Method: */
if ($a > $b ):
else if ($a == $b ): // Will not compile.
echo "The above line causes a parse error." ;
endif;

/* Correct Method: */
if ($a > $b ):
echo $a . " is greater than " . $b ;
elseif ($a == $b ): // Note the combination of the words.
echo $a . " equals " . $b ;
else:
echo $a . " is neither greater than or equal to " . $b ;
endif;

На уроке будут рассмотрены условные операторы php: оператор if и оператор переключения switch

Условные операторы php представлены тремя основными конструкциями:

  • оператор условия if ,
  • оператор переключения switch
  • и тернарный оператор .

Рассмотрим подробнее каждый из них.

PHP оператор if

Рис 3.1. Условный оператор IF, укороченный вариант


Рис. 3.2. Синтаксис условного оператора IF ELSE


Рис. 3.3. Полный синтаксис условного оператора IF elseif

Подытожим:

Полный синтаксис:

if (условие) { // если условие истинно operator1; operator2; } elseif(условие) { operator1; ... } else { // если условие ложно operator1; operator2; }

  • Укороченный синтаксис может не содержать части конструкции с else и не содержать дополнительного условия elseif
  • Вместо служебного слова elseif можно писать else if (отдельно)
  • В одной конструкции if может быть несколько elseif . Будет выполнено первое встретившееся выражение elseif равное TRUE .
  • В случае наличия альтернативного условия elseif конструкция else должна идти последней в синтаксисе.

В условном операторе может использоваться двоеточие: вместо фигурных скобок. В таком случае заканчивается оператор служебным словом endif

Рис. 3.4. Условный оператор If и Endif в php

Пример:

if($x > $y): echo $x." больше, чем ".$y; elseif($x == $y): // при использовании ":" нельзя писать раздельно else if echo $x." равно ".$y; else: echo $x." не > и не = ".$y; endif;

Важно: При использовании в конструкции двоеточия вместо фигурных скобок elseif нельзя писать в два слова!

Логические операции в условии

В условии if в скобках могут присутствовать следующие операции:

Пример: проверить значение числовой переменной: если оно меньше либо равно 10, — выдавать сообщение «число меньше или равно 10» , в обратном случае выдавать сообщение «число больше 10»


Решение:

$number=15; if ($number <=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

Блоки php кода можно разрывать, рассмотрим пример:

Пример: Выводить на экран html-код «а равно 4» , если переменная $a действительно равна 4


1 Решение:
1 2 3 4

2 Решение:

1 2 3 A равно 4

A равно 4

Задание php 3_1: Выводить перевод цветов с английского языка на русский, проверяя значение переменной (в которой присвоен цвет: $a="blue")


Задание php 3_2: Найти максимальное из трех чисел

Операции сравнения и правило лжи

В конструкции if в скобках должно находиться логическое выражение или переменная, которые рассматриваются с точки зрения алгебры логики, возвращающая значения либо true либо false

Т.е. в качестве условия может выступать единственная переменная. Рассмотрим пример:

1 2 3 4 $a = 1 ; if ($a ) { echo $a ; }

$a=1; if ($a) { echo $a; }

В примере транслятор языка php будет рассматривать переменную в скобках на правило лжи:

Правило ЛЖИ или что считается ложным:

  • логическое False
  • целый ноль (0 )
  • действительный ноль (0.0 )
  • пустая строка и строка «0»
  • массив без элементов
  • объект без переменных
  • специальный тип NULL

Таким образом, в рассмотренном примере переменная $a равна единице, соответственно условие будет истинным и оператор echo $a; выведет на экран значение переменной.

Задание php 3_3: дана переменная а со строковым значением. Если а равна имени, то выводить «Привет, имя!» , если а равна пустому значению, то выводить «Привет, незнакомец!»

Логические конструкции И ИЛИ и НЕ в условном операторе

  1. Иногда необходимо предусмотреть выполнение одновременно нескольких условий. Тогда условия соединяются логическим оператором И — && :
  2. $a=1; if ($a>0 || $a>1) { echo "a > 0 или a > 1"; }

  3. Для указания ложности условия используется логический оператор НЕ — ! :
  4. 1 2 3 4 $a = 1 ; if (! ($a < 0 ) ) { echo "a не < 0" ; }

    $a=1; if (!($a<0)) { echo "a не < 0"; }

Оператор Switch PHP

Оператор switch или «переключатель» заменяет несколько подряд идущих конструкций if . При этом он сравнивает одну переменную с множеством значений. Таким образом, это наиболее удобное средство для организации мультиветвления .

Синтаксис:

1 2 3 4 5 6 7 8 9 10 switch ($переменная ) { case "значение1" : оператор1 ; break ; case "значение2" : оператор2 ; break ; case "значение3" : оператор3 ; break ; [ default : оператор4 ; break ; ] }

switch($переменная){ case "значение1": оператор1; break; case "значение2": оператор2; break; case "значение3": оператор3; break; }

  • Оператор может проверять как строковые значения (тогда они указываются в кавычках), так и числовые (без кавычек).
  • Оператор break в конструкции обязателен. Он осуществляет выход из конструкции при истинном условии и выполнении соответствующего условию оператора. Без break будут выполняться операторы всех case независимо от их истинности.

Рис. 3.5. Условный оператор Switch


Пример: задан массив с полными мужскими именами. Проверять первый элемент массива и в зависимости от имени, выдавать приветствие с коротким именем.


Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = array ("Иван" , "Петр" , "Семен" ) ; switch ($names [ 0 ] ) { case "Петр" : echo "Привет, Петя!" ; break ; case "Иван" : echo "Привет, Ваня!" ; break ; case "Семен" : echo "Привет, Ваня!" ; break ; default : echo "Привет, $names !" ; break ; }

$names=array("Иван","Петр","Семен"); switch($names){ case "Петр": echo "Привет, Петя!"; break; case "Иван": echo "Привет, Ваня!"; break; case "Семен": echo "Привет, Ваня!"; break; default: echo "Привет, $names!"; break; }

Задание php 3_4:

  • Создайте переменную $day и присвойте ей произвольное числовое значение
  • С помощью конструкции switch выведите фразу «Это рабочий день» , если значение переменной $day попадает в диапазон чисел от 1 до 5 (включительно)
  • Выведите фразу «Это выходной день» , если значение переменной $day равно числам 6 или 7
  • Выведите фразу «Неизвестный день» , если значение переменной $day не попадает в диапазон чисел от 1 до 7(включительно)

Дополните код:

1 2 3 4 5 6 7 8 9 10 11 12 ... switch (... ) { case 1 : case 2 : ... echo "Это рабочий день" ; break ; case 6 : ... default : ... }

Switch(...){ case 1: case 2: ... echo "Это рабочий день"; break; case 6: ... default: ... }

Тернарный оператор PHP

Тернарный оператор , т.е. с тремя операндами, имеет достаточно простой синтаксис, в котором слева от знака? записывается условие, а справа — два оператора разделенные знаком: , слева от знака выполняется оператор при истинности условия, а справа от знака: выполняется оператор при ложном условии.

условие? оператор1 : оператор2 ;
3.6K

В этой статье мы расскажем, как использовать операторы if … else … и elseif PHP .

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

В PHP есть несколько операторов, которые можно использовать для принятия решений:

  • Оператор if ;
  • Оператор if … else ;
  • Оператор if … elseif …. else ;
  • Оператор switch … case .

Ниже мы рассмотрим каждый из этих операторов.

Оператор if

Оператор if (как и PHP elseif ) используется для выполнения блока кода только в том случае, если указанное условие имеет значение true . Это простейший условный оператор PHP , его можно записать следующим образом:

if(условие){ // Исполняемый код }

Хорошего уик-энда! », если сегодня пятница:

Пример :

Оператор if … else

Можно усложнить процесс принятия решений, предоставив альтернативный вариант. Для этого к if нужно добавить оператор else . Оператор if … else позволяет выполнить один блок кода, если указанное условие оценивается как true , а другой блок кода, если false .

Его можно записать следующим образом:

if(условие){ // Код, который будет выполнен, если условие истинно } else{ // Код, который будет выполнен, если условие ложно }

Приведенный ниже код выводит «Хорошего уик-энда! », если сегодня пятница. Иначе выводиться «Хорошего дня! ».

Пример :

Оператор if … elseif … else

if…elseif…else оператор (не путать с PHP elseif else ) используется для объединения нескольких операторов if … else .

if(условие){ // Код, который будет выполнен, если условие истинно } elseif(условие){ // Код, который будет выполнен, если условие истинно } else{ // Код, который будет выполнен, если условие ложно }

Приведенный ниже код выводит «Хорошего уик-энда! », если сегодня пятница или «Хорошего воскресенья!» если сегодня воскресенье. В противном случае будет выводиться «Хорошего дня! ».

Пример :

Тернарный оператор

Тернарный оператор предоставляет сокращенный способ написания операторов if … else и elseif PHP . Тернарный оператор обозначается символом вопросительного знака (? ). Он принимает три операнда: условие для проверки, результат для true и результат для false .

Чтобы понять, как работает этот оператор, рассмотрим следующие примеры:

Пример :

Используя тернарный оператор, тот же код можно записать более компактно:

Пример :

Тернарный оператор в приведенном выше примере выбирает значение слева от двоеточия (т. е. «Ребенок» ), если условие оценивается как true (т. е. если $age меньше 18 ) и значение справа от двоеточия (т.е. «Взрослый» ), если условие оценивается как false .

Примечание . Код, написанный с использованием тернарного оператора, может быть трудно читаемым. Тем не менее, он предоставляет способ компактной записи операторов if-else и PHP elseif .

Оператор нулевого коалесцирования в PHP7

В PHP 7 был введен новый оператор нулевого коалесцирования (?? ), который можно использовать в качестве сокращенного обозначения тройного оператора в сочетании с функцией isset() .