Для чего предназначается оператор else. Оператор выбора if в языке C

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

В программировании это тоже встречается очень часто. Для этого существуют два условных операторов, это if-else и switch-case . В этой статье я Вам расскажу об операторе if-else, а в следующей статье об switch-case.

Синтаксис условного оператора if-else следующий:


Если условие истина (true), то выполняется код из блока if, иначе, если условие ложь, то выполняется код из блока else.

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

Var money = 35000; // Допустим у нас есть 35 000 евро //Машину которую мы хотим купить стоит 50 000 евро. И возникает такое условие if(money > 50000){ document.write("Мы можем купить автомобиль"); }else{ document.write("Недостаточно денег для покупки машины"); }

Сохраняем документ, открываем его в браузере и видим, что на странице вывелось такое сообщение "Недостаточно денег для покупки машины". Если же у нас было бы больше 50 000 евро, то выполнился бы код из блока if. Если бы у нас было бы ровно 50 000 евро, то мы также не смогли бы купить автомобиль, потому что 50 000 не больше 50 000. Для того чтобы условие в данном случае было истина, то нужно написать знак больше либо равно (>=).

Замечание! Логическая операция равно пишется двумя знаками равенства (==) . Также присутствует и логическая операция меньше или равно (

использование фигурных скобок

Если присутствует только один оператор то фигурные скобки ставить необязательно, если в блоке больше чем один оператор, то фигурные скобки нужны обязательно.

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

Внутри if можно написать любые логические операции , будь то они простые или сложные. Можно использовать и операторы AND (&&) и OR (||).

Замечание! Присутствие блока else, не является обязательным .

Например, если a равен b, и c равен d, то выводим соответствующее сообщение, иначе если отсутствует блок else, то просто идем дальше, к следующей строчке.

Var a = 4, b = 4, c = 8, d = 8; if((a == b) && (c == d)) document.write("a равен b И c равен d"); document.write("Следующая строчка кода");

Оператор if - else if - else

После блока if, может последовать один и больше блоков else if, и в конце уже блок else. Это удобно в случае, когда нужно использовать больше чем одно условие.


Для лучшего понимания возьмем какой-то пример из повседневной жизни. Например, у нас есть определенное кол-во розеток. Если у нас в комнате только одна розетка, то мы можем подключить только одно устройство, если две розетки то мы можем подключить две устройства и если больше, то мы можем подключить к электрической сети, все устройства из дома.

Теперь перейдем к программированию.

Var socket = 2; // Кол-во розеток в доме if(socket == 1)  document.write("

Мы можем подключить только одно устройство

"); else if(socket == 2){ document.write("

Мы можем подключить только две устройства

"); document.write("

Например телевизор и ноутбук

"); }else{ document.write("

Мы можем подключить к электрической сети все устройства из дома

"); }

В зависимости от значения переменной socket, сработает тот или иной блок кода. Как Вы уже наверняка поняли, что если socket равен 1, то сработает первый блок кода. Если socket равен 2, то сработает второй блок кода и если socket имеет любое другое значение (даже отрицательное число) то сработает третий блок кода.

Сокращенная запись if else

Сокращенную запись можно использовать в случае, когда в зависимости от некого условия, переменная может получить то или иное значение.


Например, если значение переменной a больше значения переменной b, то в переменную x запишем такое сообщение, "Переменная a больше переменной b" , иначе запишем что "Переменная a меньше переменной b".

Var a = 50, b = 100, x; x = (a > b) ? "

Переменная a больше переменной b

" : "

Переменная a меньше переменной b

"; //Выводим полученный результат document.write(x);

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

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

Условные операторы позволяют управлять потоком выполнения программы, чтобы не выполнялась каждая строка кода, как она следует в программе. Давайте рассмотрим все условные операторы языка C#:

Оператор if

Для организации условного ветвления язык C# унаследовал от С и С++ конструкцию if...else. Ее синтаксис должен быть интуитивно понятен для любого, кто программировал на процедурных языках:

if (условие)
оператор (операторы)
else
оператор (операторы)

Если по каждому из условий нужно выполнить более одного оператора, эти операторы должны быть объединены в блок с помощью фигурных скобок {...}. (Это также касается других конструкций C#, в которых операторы могут быть объединены в блок - таких как циклы for и while .)

Стоит обратить внимание, что в отличие от языков С и С++, в C# условный оператор if может работать только с булевскими выражениями, но не с произвольными значениями вроде -1 и 0.

В операторе if могут применяться сложные выражения, и он может содержать операторы else, обеспечивая выполнение более сложных проверок. Синтаксис похож на применяемый в аналогичных ситуациях в языках С (С++) и Java. При построении сложных выражений в C# используется вполне ожидаемый набор логических операторов . Давайте рассмотрим следующий пример:

Using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string args) { string myStr; Console.WriteLine("Введите строку: "); myStr = Console.ReadLine(); if (myStr.Length = 5) && (myStr.Length

Как видите количество else if, добавляемых к единственному if, не ограничено. Один момент, который следует отметить касательно if: фигурные скобки применять не обязательно, если в условной ветви присутствует только один оператор, как показано в исходном примере.

Оператор switch

Вторым оператором выбора в C# является оператор switch , который обеспечивает многонаправленное ветвление программы. Следовательно, этот оператор позволяет сделать выбор среди нескольких альтернативных вариантов дальнейшего выполнения программы. Несмотря на то что многонаправленная проверка может быть организована с помощью последовательного ряда вложенных операторов if, во многих случаях более эффективным оказывается применение оператора switch. Этот оператор действует следующим образом. Значение выражения последовательно сравнивается с константами выбора из заданного списка. Как только будет обнаружено совпадение с одним из условий выбора, выполняется последовательность операторов, связанных с этим условием. Ниже приведена общая форма оператора switch:

switch(выражение) { case константа1: последовательность операторов break; case константа2: последовательность операторов break; case константаЗ: последовательность операторов break; ... default: последовательность операторов break; }

Хотя оператор switch...case должен быть знаком программистам на С и С++, в C# он немного безопаснее, чем его эквивалент С++. В частности, он запрещает "сквозные" условия почти во всех случаях. Это значит, что если часть case вызывается в начале блока, то фрагменты кода за последующими частями case не могут быть выполнены, если только не используется явно оператор goto для перехода к ним. Компилятор обеспечивает это ограничение за счет того, что требует, чтобы за каждой частью case следовал оператор break , в противном случае он выдает ошибку.

Важно отметить, что заданное выражение в операторе switch должно быть целочисленного типа (char, byte, short или int), перечислимого или же строкового . А выражения других типов, например с плавающей точкой, в операторе switch не допускаются. Зачастую выражение, управляющее оператором switch, просто сводится к одной переменной. Кроме того, константы выбора должны иметь тип, совместимый с типом выражения. В одном операторе switch не допускается наличие двух одинаковых по значению констант выбора.

На занятии рассматривается условный оператор в Паскале (if ). Объясняется, как использовать несколько условий в одной конструкции (AND и OR ). Рассмотриваются примеры работы с оператором

Напоминаем, что данный сайт не претендует на полное изложение информации по теме. Целью портала является предоставление возможности усваивания материала на основе готовых решенных примеров по теме «Язык программирования Pascal» с практическими заданиями для закрепления материала. Представленные на сайте сайт задания по Паскалю выстроены последовательно по мере увеличения их сложности. Сайт сайт может быть использован учителями и преподавателями в качестве вспомогательного наглядного пособия.

До рассмотрения данной темы в основном использовались линейные алгоритмы в Паскале, характерные для весьма простых задач, когда действия (операторы) выполняются последовательно, одно за другим. Более сложные алгоритмы предусматривают использование конструкция ветвления.

Блок-схема условного оператора:

Условный оператор в Паскале имеет следующий синтаксис:

Сокращенный вариант:

if условие then оператор;

Полный вариант:

if условие then оператор else оператор;

Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.

Составной оператор

Если при истинном условии необходимо выполнять несколько операторов, то их по правилам языка Pascal необходимо заключать в блок , начинающийся со служебного слова begin и заканчивающегося служебным словом end . Такой блок принято называть операторными скобками , а данную конструкцию — составным оператором :

Операторные скобки и составной оператор в Паскале:

if логическое выражение then begin оператор1; оператор2; end else begin оператор1; оператор2; end;

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

IF THEN ELSE
ЕСЛИ ТО ИНАЧЕ


В условии (в логическом выражении) используются операторы отношения.
Рассмотрим список операторов отношения Паскаля:

  • больше >
  • меньше
  • больше или равно в Pascal >=
  • меньше либо равно в Pascal
  • сравнение в Pascal =
  • не равно в Pascal

Пример: найти наибольшее из двух чисел

Вариант 1 Вариант 2


Подробно разобраться в работе условного оператора в Паскале можно, просмотрев видеоурок:

Пример: вычислить значение переменной у по одной из двух ветвей

Показать решение:

var x,y:real; begin writeln ("введите х"); read(x); if x>0 then y:=ln(x) else y:=exp(x); writeln ("y=", y:6:2) {итоговое число будет занимать 6 позиций, и в нем будет 2 знака после запятой} end.

Обратите внимание на то, как в данном примере выводится y . При выводе переменных типа в pascal, можно использовать так называемый форматированный вывод , или запись с двумя двоеточиями:
y:6:2
- цифра после первого двоеточия (6) указывает на то, сколько знаков будет занимать число при выводе на экран
- цифра после второго двоеточия (2) указывает на то, сколько знаков после запятой вещественного числа будет выводиться

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

Задача 0. Вычислить значение переменной у по одной из двух ветвей:

Задача 1. В компьютер вводятся два числа. Если первое больше второго, то вычислить их сумму, иначе - произведение. После этого компьютер должен напечатать результат и текст ЗАДАЧА РЕШЕНА

Задача 2. Дракон каждый год отращивает по три головы, но после того, как ему исполнится 100 лет - только по две. Сколько голов и глаз у дракона, которому N лет?

Логические операции в Паскале (в логическом выражении)

Когда необходимо использовать двойное условие в Pascal, то понадобятся логические операции.

  • Логическая операция AND (И), поставленная между двумя условиями, говорит о том, что должны выполняться сразу оба эти условия (должны быть истинными). Логический смысл операции - "конъюнкция".
  • Поставленный между двумя условиями, знак OR (ИЛИ) говорит о том, что достаточно, если будет выполняться хотя бы одно из них (одно из двух условий истинно). Логический смысл операции - "дизъюнкция".
  • На языке Паскаль XOR - знак логической операции, имеющий смысл "строгая дизъюнкция" и указывающий на то, что необходимо, чтобы одно из двух условий выполнялось (истинно), а другое - не выполнялось (ложно).
  • Логическая операция NOT перед логическим выражением или переменной имеет смысл "отрицание" или "инверсия" и указывает на то, что если данная переменная или выражение истинны, то их отрицание - ложь и наоборот.

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

Пример : Рассмотрим примеры логических операций в логических выражениях в Паскале

1 2 3 4 5 6 7 8 var n: integer ; begin n: = 6 ; if (n>5 ) and (n<10 ) then writeln ("истина" ) ; if (n>7 ) or (n<10 ) then writeln ("истина" ) ; if (n>7 ) xor (n<10 ) then writeln ("истина" ) ; if not (n>7 ) then writeln ("истина" ) ; end .

var n:integer; begin n:=6; if (n>5) and (n<10) then writeln("истина"); if (n>7) or (n<10) then writeln("истина"); if (n>7) xor (n<10) then writeln("истина"); if not(n>7) then writeln("истина"); end.

Пример: Компания набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он для данной компании (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.

Пример: Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».

Рассмотрим организацию ввода- вывода и реализацию основных управляющих структур. Любой конкретный алгоритм может быть записан на языке программиррования, использующем только три управляющий структуры: последовательное выполнение, ветвление и повторение.
Последовательное выполнение стль обычно, что мы редко о нем вспоминаем, как об управляющей структуре. Последовательность операторов выполняется в порядке их естественнго расположения в программе, с возможным отклонением для вызова внешнего франмента (функции), но с обязательным возратом в точку вызова.
Ветвление в простейшем случае описывается в языке Си с помощью условного оператора. имеющего вид:
if (выражение)
оператор_1;
else
оператор_2;

где часть else может и отсутствовать. Сначала вычисляется "выражение" в скобках; если оно истинно то выполняется оператор_1 . Если "выражение" ложно (равно нулю - NULL ), то оператор_1 пропускается, а выполняется оператор_2 . Если на месте условно выполняемых операторов должна располагаться группа из нескольких операторов языка, то они заключаются в фигурные скобки - { }. Часто "выражение" в скобках представляет условие, заданное с помощью операций отношений и логических операций. Операции отношения обозначаются в Си следующим образом:

= = равно; ! = не равно; < меньше; > больше;
< = меньше или равно; > = больше или равно.

Символ ! в языке Си обозначает логическое отрицание. Есть еще две логические операции: || означает или, а && - логическое И . Операции отношения имеют приоретет ниже арифметических операций, так что выражение вида k > n%i вычисляется как k > (n%i). Приоритет && выше, чем у ||, но обе логические операции выполняются после операций отношения и арифметических. В сомнительных случаях лучше расставлять скобки.

Для иллюстрации применения условного оператора рассмотрим программу определения большего из трех чисел. Первый if оператор представляет полную условную конструкцию, во втором случае else отсутствует. Обратите внимание, что точка с запятой, завершая оператор присваивания max=x, не нарушает единство if - оператора. Если else - ветвь пропускается во вложенных условиях, возможна неоднозначность их толкования. Во избежание двусмысленностей решают так: else соответствует ближайшему if, не имеющего своего else .

Пример 1.3.

Рассмотрим пример программы, в которой применяются несколько вложенных друг в друга условных операторов. В этой программе сторока float A, B, X объявляет эти три переменные как величины вещественного типа. Форматная строка функции scanf предписывает ввести два вещественные числа, которые станут значениями переменных A и B соответственно.

Пример 1.4

/*РЕШЕНИЕ УРАВНЕНИЯ AX=B*/
#include
main()
{

float A,B,X;
printf("ВВЕДИ А, В\n");
scanf("%f %f",&A, &B);
if(A!=0)
printf("РЕШЕНИЕ:%f\n", B/A);
else
if(B==0)
printf("X-ЛЮБОЕ ЧИСЛО\n");
else
printf("РЕШЕНИЙ НЕТ\n");
}

Посмотрите, как выглядит ветвление, когда глубина вложенности условных операторов равна трем (пример 1.5). Если хоть одно условие истинно, то все оставшиеся, разумеется, пропускаются. При глубине вложенности условных операторов свыше трех ветвление теряет наглядность и понятность.
Для реализации многозадачного ветвления обычно прибегают к управляющей стркутуре выбор (переключатель) (см. п.9.4). Когда управляющяя структура ветвления становится особенно запутанной, определенную ясность могут внести фигурные скобки. Они обязательны, когда в условном операторе содержится более одного опрератора или функции, например

Статьи по теме: