какие условные операторы вы знаете
Условные операторы
Бывает, что в процессе выполнения программы требуется реализовать разный набор команд в зависимости от произошедших до этого событий. В языках программирования это достигается с помощью специальных конструкций – условных операторов.
Чаще всего в качестве условного оператора в языках программирования используется конструкция if-else или ее сокращенный вариант if. Также существует оператор выбора case, который имеет более специфичное применение.
Оператор if-else
Когда выполнение основной ветки программы доходит до условного оператора if-else, то в зависимости от результата логического выражения в его заголовке выполняются разные блоки кода. Если логическое выражение вернуло true, то выполняется один блок (в Паскале начинается со слова then), если false – то другой (начинается со слова else). После выполнения одного из вложенных блоков кода, ход программы возвращается в основную ветку. Другой вложенный блок не выполняется.
Например, программа должна определять, ввел пользователь четное или нечетное число, и выводить на экран сообщение. Тогда программный код на языке Pascal может быть таким:
Бывают неполные формы условных операторов. В таком случае вложенный в if блок кода выполняется только в случая true логическом выражении заголовка. В случае false выполнение программы сразу передается в основной блок. Понятно, что ветка else в таком случае отсутствует.
В примере ниже, если переменная имеет значение меньше нуля, то ее значение изменяется (находится модуль числа). Если же значение переменной изначально больше нуля, то блок кода при операторе if вообще не выполняется, т.к. не соблюдено условие (n Добавить комментарий
Условные операторы в Си
Условный оператор if
Условный оператор if может использоваться в форме полной или неполной развилки.
В случае неполной развилки если Условие истинно, то БлокОпераций1 выполняется, если Условие ложно, то БлокОпераций1 не выполняется.
БлокОпераций может состоять из одной операции. В этом случае наличие фигурных скобок, ограничивающих блок, необязательно.
Основными операциями, проверяемыми внутри условного блока, являются операции отношения.
Пример на C :
Результат выполнения
Оператор if может быть вложенным.
Результат выполнения
Логические операции в условных операторах
Условный оператор может проверять
Пример на Си : Найти максимум из 3 чисел
Пример на С++ : Найти максимум из 3 чисел
Тернарные операции
Тернарная условная операция имеет 3 аргумента и возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Синтаксис тернарной операции в языке Си
Тернарные операции, как и операции условия, могут быть вложенными. Для разделения вложенных операций используются круглые скобки.
Приведенный выше пример с использованием тернарных операций можно представить в виде
Оператор ветвления switch (оператор множественного выбора)
Общая форма записи
Оператор ветвления switch выполняется следующим образом:
Константы в опциях case должны быть целого типа (могут быть символами).
Какие условные операторы вы знаете
В Паскале разветвляющиеся алгоритмы позволяет реализовать условный оператор. Условный оператор позволяет проверить некоторое логическое выражение и в зависимости от результатов проверки выполнить то или иное действие.
Структура условного оператора в полной форме имеет следующий вид:
IF (логическое выражение) THEN (оператор1) ELSE (оператор2);
Блок-схема условного оператора в полной форме:
В условном операторе после then, а также после else по синтаксису может стоять только один оператор. Если же при выполнении (или невыполнении)логического выражения надо выполнить не одно действие, а несколько, то их надо объединить в единый, составной оператор, т.е. заключить эту последовательность действий в операторные скобки.
Составной оператор имеет вид:
Перед служебным словом Else символ «;» не ставится. Структура условного оператора в неполной форме имеет следующий вид: IF (условие) THEN (оператор); Пример: If A then If A then begin Пример 1: | Программный код на языке Pascal: var n: integer; begin write (‘ Введите целое число : ‘); readln (n); //ввод переменной if n mod 2 = 0 then //определяется четность write (‘Оно четное’) //если выполняется условие четности выводится сообщение «Оно четное» else write (‘Оно нечетное’); //если не выполняется условие четности выводится сообщение «Оно нечетное» readln end |
Пример 2:
Даны два числа, найти наибольшее.
Упражнения «Программирование разветвляющихся алгоритмов»
1. Записать условие, которое является истинным, когда
· каждое из чисел X и Y нечетное;
· только одно из чисел X и Y меньше 20;
· хотя бы одно из чисел X и Y равно нулю;
2. Записать условие, которое является истинным, когда
· каждое из чисел А и В больше 100;
· только одно из чисел А и В четное;
· хотя бы одно из чисел А и В положительно;
· каждое из чисел А, В, С кратно трем;
· только одно из чисел А, В и С меньше 50;
· хотя бы одно из чисел А, В, С отрицательно.
3. Записать условие, которое является истинным, когда
1. целое А кратно двум или трем;
2. целое А не кратно трем и оканчивается нулем.
4. Записать условие, которое является истинным, когда
1. целое N кратно пяти или семи;
2. целое N кратно четырем и не оканчивается нулем.
5. Определите значение переменной С после выполнения фрагмента программы:
if А>В then С:=А+В else С:=А-В;
а) 100 b) 5 с) 105 d)95
6. Укажите правильную запись на языке Паскаль выражения, записанного на русском языке Х>=0 и Х>=3,25 и У
Урок 6. Условный оператор if
Урок из серии: «Язык программирования Паскаль»
Один из важнейших операторов Паскаля – условный оператор. Он позволяет изменять порядок выполнения операторов в зависимости от некоторого условия, представляющего собой логическое выражение типа Boolean. Если значение равно True, то выполняется одна группа операторов, если False, то другая группа операторов или не выполняется ничего.
В языке Паскаль имеются два условных оператора: if (оператор ветвления) и case (оператор выбора). Оператор if обеспечивает выбор из двух альтернатив, оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.
На этом уроке рассмотрим оператор If.
Условный оператор If (оператор ветвления)
Полная формы условного оператора называется If-then-else, имеет вид:
Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.
Слова if (если) и Then (то) – зарезервированные.
Замечание. Перед ключевым словом else (иначе) точка с запятой не ставится, она ставиться после всего оператора If.
Условие представляют собой логические выражение. Простые условия записываются в виде равенств или неравенств. В сложных условиях несколько простых условий объединяются с помощью логических операций or, and. В этом случае простые условия заключаются в круглые скобки.
На рисунке показана блок-схема полной формы оператора.
Алгоритм выполнения полного условного оператора:
Неполная форма условного оператора называется if-then, имеет вид:
Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.
В неполном ветвлении ветвь Else отсутствует.
На рисунке показана блок схема оператора if-then.
Алгоритм выполнения неполного условного оператора
Операторы ветвления могут быть вложенными, т.е. один оператор if можно расположить внутри другого. В этом случае он позволяет производить выбор более чем из двух вариантов. При написании исходного кода с вложенными операторами для удобочитаемости кода вложенные операторы выделяются отступами.
Применение условного оператора if рассмотрим на примерах.
Пример 1. С клавиатуры ввести два различных числа. Найти большее из них и вывести его на экран.
В этом примере нужно произвести выбор одного из двух вариантов, для этого используется оператор if—then—else.
Пример 2. Даны три отрезка. Можно ли из них построить треугольник?
Решение. Для любого треугольника сумма его двух сторон должна быть больше третьей стороны (неравенство треугольника). Если a, b, c – стороны предполагаемого треугольника, то нужно сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольник из таких отрезков не построить.
Для решения этой задачи используется оператор if—then—else со сложным условием.
Задачи для самостоятельного выполнения
На этом уроке рассказывалось об условном операторе if и его применении при решении задач. Простой оператор ветвления используется для для выбора одного из двух возможных продолжений алгоритма, для выбора более чем из двух продолжений можно использовать вложенный оператор ветвления.
C#. Урок 6. Условные операторы и циклы
Для управления процессом выполнения программы C# предоставляет условные операторы if и switch, а для запуска повторяющихся действий циклы: for, while (do/while) и foreach. Этим конструкциям, а также знакомству с LINQ посвящен данный урок.
Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.
Условные операторы
Оператор if
Конструкция if…else позволяет проверить некоторое условие на истинность и, в зависимости от результата, выполнить тот или иной блок кода. Синтаксис условного оператора if…else :
Пример работы с оператором if :
Для отдельного контроля варианта, когда сравниваемые числа равны, можно воспользоваться конструкцией if else :
Оператор switch
Конструкция switch…case используется, когда необходимо, в зависимости от конкретного значения переменной или результата некоторой операции, выполнить требуемый блок кода.
Синтаксис конструкции имеет следующий вид:
С # 7 и более поздние версии поддерживают упомянутый выше шаблон констант и другие виды шаблонов.
Рассмотрим простой пример работы с switch :
В качестве шаблонов в case могут выступать:
Рассмотрим их более подробно.
Шаблон константы
Шаблон типа
Для задания альтернативы со значением null используйте следующий формат:
Для демонстрации создадим несколько вспомогательных классов:
Выражение с ключевым словом when
Реализуем возможность раздельной работы с тремя вариантами велосипедов:
Тернарный оператор
Результатом вычисления тернарного оператора является одна из двух альтернатив, которая выбирается в зависимости от истинности проверяемого условия.
Синтаксис оператора имеет следующий вид:
Циклы
Циклы в языках программирования предназначены для построения конструкции, выполняющей заданный блок кода некоторое количество раз, которое определяется тем или иным условием. C # предоставляет четыре разных варианта построения циклов.
Цикл for
Цикл for имеет следующий синтаксис:
Инициализатор – это выражение, вычисляемое перед выполнением тела цикла. Обычно здесь инициализируется локальная переменная, которая будет использоваться как счетчик.
Итератор – это выражение, вычисляемое после каждой итерации. Обычно здесь происходит изменение локальной переменной, объявленной в инициализаторе.
В нем мы инициализируем локальную переменную значением 0, затем проверяем, что переменная меньше трех, выполняем тело цикла – выводим в консоль значение числа i в квадрате. На каждой итерации прибавляем к переменной i значение 1, снова проверяем условие и выполняем тело цикла, и так, до тех пор, пока условие (i будет истинным.
Циклы while и do/while
В C # цикл while имеет следующую конструкцию:
В этом цикле проверяется условие, и если оно истинно, то выполняется набор операторов внутри тела цикла. Обязательно убедитесь, что изменяете переменную, от которой зависит условие, иначе цикл станет бесконечным, если, конечно, это не является целью. Пример работы с циклом while :
Цикл do/while имеет следующий синтаксис:
Отличие do/while заключается в том, что проверка условия происходит после тела цикла, что приводит к тому, что вне зависимости от условия цикл выполнится хотя бы один раз.
Пример работы с циклом do/while :
Цикл foreach
Оператор foreach используется для обхода коллекций, последовательно переходя от элемента к элементу в цикле. В данном случае, под коллекцией понимается тип, который:
Пример работы с оператором foreach :
В нем мы определяем количество чисел, которые больше десяти, в исходном массиве.
Тип переменной цикла в операторе foreach можно задавать явно, как это было сделано в примере выше, так и не явно с помощью ключевого слова var :
Операторы перехода
LINQ как инструмент обхода коллекций
Выполним туже операцию с помощью LINQ :
С помощью методов расширения из System.Linq можно выполнять над коллекциями операции фильтрации, преобразования, группировки, агрегирования, формирования коллекций и т.д. Рассмотрим некоторые из этих возможностей.
Извлечем из массива nums числа, значение которых больше 10:
Метод Select применяет переданную ей функцию к элементам коллекции и формирует на базе полученных значений новую коллекцию. Вычтем из элементов nums константу 7:
Создадим класс FootballTeams для представления футбольной команды:
Создадим метод для генерации данных о результатах футбольных матчей:
Создадим переменную для хранения результатов матчей:
Воспользуемся LINQ запросом и выберем из нашей коллекции все команды, которые занимают первое место в группах и выведем на экран название команды и количество заработанных очков.
Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.