Зачем нужно ветвление в программе

больше или равно

меньше или равно

Справа и слева от знака сравнения должны стоять величины, относящиеся к одному типу. В результате сравнения получается логическая величина, имеющее значение ИСТИНА (TRUE) или ЛОЖЬ (FALSE).

Пример:
58=12 -ЛОЖЬ (проверяем равно ли 8 12, именно проверяем, а не утверждаем, что 8=12 );

Предыдущие конструкции позволяли обойти или выполнить серию оператор в зависимости от справедливости условия. Это еще не было ветвлением. Чтобы вычисления могли разветвляться по нескольким направлениям, служит конструкция IF. THEN. ELSE. END IF .

Если условие справедливо (ИСТИНА), то выполняются (стоящие между THEN и ELSE ), а (стоящие между ELSE и END IF ) будут пропущены.
Если условие не справедливо (ЛОЖЬ), то игнорируются и выполняются .

IF — если, THEN — тогда, ELSE — иначе.

Если в комнате темно, тогда надо включить свет.

Если пойдет дождь, тогда надо взять зонтик,
иначе , зонтик не брать.

Пример: Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать на экран сообщение о равенстве чисел.

Оператор if и организация ветвления в Си

REM сравнить число со каким-то значением
INPUT «Введите а», а
IF a=7 THEN PRINT «Числа равны»
END

После запуска программы проверяется равно ли введенное значение семи или нет. Если равно, то на экран выводится сообщение ‘Числа равны’.

Пример: Определить большее из двух чисел, вывести его на экран, затем — увеличить его в двое и вывести результат на экран.

REM определить большее из двух чисел.
INPUT «Введите а», а
INPUT «Введите b», b
IF a>b THEN
PRINT «Большее число: «, a
с=2*a
ELSE
PRINT «Большее число: «, b
с=2*b
END IF
PRINT «результат: «, c
END

Сначала программа запрашивает оба числа, затем проверяет условие a>b. Если условие верно, то на экран выводится число a, затем это число удваивается. Иначе на на экран выводится число b, затем число b удваивается. В завершении на экран выводится удвоенное значение большего числа.

Обратите внимание: программа имеет один недостаток — не учитывается тот случай, когда введенные числа равны. Исправим это, использовав вложение одного условия в другое.

REM определить большее из двух чисел.
INPUT «Введите а», а
INPUT «Введите b», b
IF a=b TNEN
PRINT «Числа равны»
с=2*a
ELSE
IF a>b THEN
PRINT «Большее число: «, a
с=2*a
ELSE
PRINT «Большее число: «, b
с=2*b
END IF
END IF
PRINT «результат: «, c
END

В этой программе два условных оператора, первым проверяется условие равенства чисел и, в случае его выполнения, будет выдано сообщение о равенстве чисел, если числа не равны, то проверяется второе условие.

Пример: Решение квадратного уравнения.
Решение квадратного уравнения зависит от значения дискриминанта.

Уроки Python / Конструкция if elif else — если то иначе — Условная инструкция

REM Решение квадратного уравнения
INPUT «Введите коэффициент a: «, а
INPUT «Введите коэффициент b: «, b
INPUT «Введите коэффициент c: «, c
d=b*b-4*a*c
IF dPRINT «Корней нет»
ELSE
IF d=0 THEN
x=-b/(2*a)
PRINT «корень уравнения: «, x
ELSE
x1=(-b-SQR(d))/(2*a)
x2=(-b+SQR(d))/(2*a)
PRINT «корни уравнения: «, x1, x2
END IF
END IF
END

Структура IF. позволяет выбрать между двумя вариантами. Если требуется осуществить выбор между большим числом вариантов, то это можно организовать используя лишь структуру IF . Но можно (что чаще проще) и с помощью структуры «Выбор». Эта структура имеет вид:

Выражение, заданное после ключевых слов SELECT CASE , сравнивается с определенными значениями — условиями и если они истинны, то выполняется соответствующая серия команд. Если не одно условие не истинно, то выполняется серия команд между CASE ELSE и END SELECT.

Пример: Выдать словесное значение числа

REM Преобразование чисел в слова
INPUT «Введите число», a
SELECT CASE a
CASE 1
PRINT «один»
CASE 2
PRINT «два»
CASE 3
PRINT «три»
.
CASE 10
PRINT «десять»
CASE ELSE
PRINT «это число не могу перевести»
END SELECT
END

В данном примере введенное число сравнивается с числами от 1 до 10 и если наше число равно одному из этих чисел, то на экран выводится словесное значение числа. Если это не так на экран выводится сообщение: «это число не могу перевести».

Читайте также:
Какая из указанных программ не относится к текстовым редакторам

Источник: www.klyaksa.net

Ветвление в Java

Java-университет

Ветвление в Java - 1

В данной статье мы рассмотрим такое понятие как ветвление в компьютерных программах в общем и написанных на ЯП Java. Поговорим о таких управляющих конструкциях, как:

  • if-then (или же if )
  • if-then-else (или же if-else )
  • switch-case

Ветвление

  • Оператор if-then
  • Оператор if-then-else
  • Тернарный оператор ? :

if-then

Оператор if-then , или же просто if пожалуй самый распространенный оператор. Выражение “да там 1 if написать” уже стало крылатым. Оператор if имеет следующую конструкцию:

if (bool_condition)

  • bool_condition — boolean выражение, результатом которого является true или false. Данное выражение называют условием.
  • statement — команда (может быть не одна), которую необходимо исполнить, в случае, если условие истинно ( bool_statement==true )

Если (bool_condition), то
Приведем примеры:
public static void main(String[] args) < Scanner scanner = new Scanner(System.in); System.out.print(«Сколько процентов заряда батареи осталось на вашем смартфоне?»); int a = scanner.nextInt(); if (a < 10) < System.out.println(«Осталось менее 10 процентов, подключите ваш смартфон к зарядному устройству»); >>

В данной программе пользователю предлагается ввести количество процентов заряда батареи на его смартфоне. В случае, если осталось менее 10 процентов заряда, программа предупредит пользователя о необходимости зарядить смартфон. Это пример простейшей конструкции if . Стоит заметить, что если переменная `а` будет больше либо равна 10, то ничего не произойдет. Программа продолжит выполнять код, который следует за конструкцией if . Также заметим, что в данном случае, у конструкции if есть только одна последовательность действий для исполнения: напечатать текст, либо не делать ничего. Эта вариация ветвления с одной “ветвью”. Такое порой бывает необходимо. Например когда мы хотим обезопасить себя от неправильных значений. К примеру, мы не можем узнать количество букв в строке, если строка равна null . Примеры ниже:

public static void main(String[] args) < String x = null; printStringSize(x); printStringSize(«Не представляю своей жизни без ветвлений. «); printStringSize(null); printStringSize(«Ифы это так захватывающе!»); >static void printStringSize(String string) < if (string != null) < System.out.println(«Кол-во символов в строке `» + string + «` lang-java line-numbers»> if (bool_condition) < statement1 >else

  • bool_statement — boolean выражение, результатом которого является true или false. Данное выражение называют условием.
  • statement1 — команда (может быть не одна), которую необходимо выполнить, если условие истинно ( bool_statement==true )
  • statement2 — команда (может быть не одна), которую необходимо выполнить, если условие ложно ( bool_statement==false )

Если (bool_condition), то Иначе
Приведем пример:
public static void main(String[] args) < Scanner scanner = new Scanner(System.in); System.out.print(«Сколько процентов заряда батареи осталось на вашем смартфоне?»); int a = scanner.nextInt(); if (a < 10) < System.out.println(«Осталось менее 10 процентов, подключите ваш смартфон к зарядному устройству»); >else < System.out.println(«Заряда вашей батареи достаточно для того, чтобы прочитать статью на Javarush»); >>

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

if (a < 10) < System.out.println(«Осталось менее 10 процентов, подключите ваш смартфон к зарядному устройству»); >else

Если a < 10 истинно (уровень заряда батареи меньше 10), программа выведет на печать один текст. Иначе, если условие a < 10 не выполняется, то программа выведет уже совсем другой текст. Доработаем также и второй наш пример, в котором мы выводили на экран количество букв в строке. В прошлый раз программа не выводила ничего, если переданная строка была равна null . Исправим этом, превратив обычный if в if-else :

public static void main(String[] args) < String x = null; printStringSize(x); printStringSize(«Не представляю своей жизни без ветвлений. «); printStringSize(null); printStringSize(«Ифы это так захватывающе!»); >static void printStringSize(String string) < if (string != null) < System.out.println(«Кол-во символов в строке `» + string + «`=» + string.length()); >else < System.out.println(«Ошибка! Переданная строка равна null!»); >>

В методе printStringSize в конструкцию if мы добавили блок else . Теперь, если мы запустим программу, она выведет в консоль уже не 2 строки, а 4, хотя вводные (метод main ) остались такими же, как и в прошлый раз. Текст, который выведет программа:

Читайте также:
Как редактировать в программе paint

Ошибка! Переданная строка равна null! Кол-во символов в строке `Не представляю своей жизни без ветвлений. `=43 Ошибка! Переданная строка равна null! Кол-во символов в строке `Ифы это так захватывающе!`=25

Допустимы ситуации, когда после else следуют не команды на исполнение, а еще один if . Тогда конструкция принимает следующий вид:

If (bool_condition1) < statement1 >else if (bool_condition2) < statement2 >else if (bool_conditionN) < statementN >else

  • bool_condition1
  • bool_condition2
  • bool_conditionN
  • statement1
  • statement2
  • statementN

Если (bool_condition1) то Иначе если (bool_condition2) то Иначе если (bool_conditionN) то Иначе

Последняя строка в данном случае опциональна. Можно обойтись и без последнего одинокого else . И тогда конструкция примет следующий вид:

If (bool_condition1) < statement1 >else if (bool_condition2) < statement2 >else if (bool_conditionN)
И читаться будет так:
Если (bool_condition1) то Иначе если (bool_condition2) то Иначе если (bool_conditionN) то

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

Вернемся к ситуации с уровнем заряда на смартфоне. Напишем программу, которая будет более детально информировать владельца об уровне заряда его девайса:

public static void main(String[] args) < String alert5 = «Я скоро отключусь, но помни меня бодрым»; String alert10 = «Я так скучаю по напряжению в моих жилах»; String alert20 = «Пора вспоминать, где лежит зарядка»; String alert30 = «Псс, пришло время экономить»; String alert50 = «Хм, больше половины израсходовали»; String alert75 = «Всё в порядке, заряда больше половины»; String alert100 = «Я готов к приключениям, если что..»; String illegalValue = «Такс, кто-то ввел некорректное значение»; Scanner scanner = new Scanner(System.in); System.out.print(«Сколько процентов заряда батареи осталось на вашем смартфоне?»); int a = scanner.nextInt(); if (a 100) < System.out.println(illegalValue); >else if (a < 5) < System.out.println(alert5); >else if (a < 10) < System.out.println(alert10); >else if (a < 20) < System.out.println(alert20); >else if (a < 30) < System.out.println(alert30); >else if (a < 50) < System.out.println(alert50); >else if (a < 75) < System.out.println(alert75); >else if (a >

К примеру в данном случае, если пользователь введет 15, то программа выведет на экран: “Пора вспоминать, где лежит зарядка”. Несмотря на то, что 15 меньше и 30 и 50 и 75 и 100, вывод на экран будет только 1. Напишем еще одно приложение, которое будет печатать в консоль, какой сегодня день недели:

public static void main(String[] args) < // Определим текущий день недели DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek(); if (dayOfWeek == DayOfWeek.SUNDAY) < System.out.println(«Сегодня воскресенье»); >else if (dayOfWeek == DayOfWeek.MONDAY) < System.out.println(«Сегодня понедельник»); >else if (dayOfWeek == DayOfWeek.TUESDAY) < System.out.println(«Сегодня вторник»); >else if (dayOfWeek == DayOfWeek.WEDNESDAY) < System.out.println(«Сегодня среда»); >else if (dayOfWeek == DayOfWeek.THURSDAY) < System.out.println(«Сегодня четверг»); >else if (dayOfWeek == DayOfWeek.FRIDAY) < System.out.println(«Сегодня пятница»); >else if (dayOfWeek == DayOfWeek.SATURDAY) < System.out.println(«Сегодня суббота»); >>

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

switch-case

Альтернативой жирным if с большим количеством ветвей служит оператор switch-case . Данный оператор как бы говорит “Так, у нас есть вот такая вот переменная. Смотрите, в случае, если её значение равно `x`, то делаем то-то и то-то, если ее значение равно `y`, то делаем по-другому, а если ничему не равно из вышеперечисленного, просто делаем вот так… ” Данный оператор обладает следующей структурой.

switch (argument)

  • byte and Byte
  • short and Short
  • int and Integer
  • char and Character
  • enum
  • String

switch (argument)

Стоит обратить внимание: между `case valueX:` и `case valueY:` нет оператора break . Здесь, если argument будет равен value1 , выполнится statement1 . А если argument будет равен valueX либо valueY , выполнится statementXY . Разбавим тяжелую для восприятия теорию на легкую для восприятия практику. Перепишем пример с днями недели с использованием оператора switch-case .

public static void main(String[] args) < // Определим текущий день недели DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek(); switch (dayOfWeek) < case SUNDAY: System.out.println(«Сегодня воскресенье»); break; case MONDAY: System.out.println(«Сегодня понедельник»); break; case TUESDAY: System.out.println(«Сегодня вторник»); break; case WEDNESDAY: System.out.println(«Сегодня среда»); break; case THURSDAY: System.out.println(«Сегодня четверг»); break; case FRIDAY: System.out.println(«Сегодня пятница»); break; case SATURDAY: System.out.println(«Сегодня суббота»); break; >>

Читайте также:
Как установить программу для скачивания с ютуба

Теперь напишем программу, которая выводит информацию о том, является ли сегодняшний день будним днем или выходным, используя оператор switch-case .

public static void main(String[] args) < // Определим текущий день недели DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek(); switch (dayOfWeek) < case SUNDAY: case SATURDAY: System.out.println(«Сегодня выходной»); break; case FRIDAY: System.out.println(«Завтра выходной»); break; default: System.out.println(«Сегодня рабочий день»); break; >>

Немного поясним. В данной программе мы получаем enum DayOfWeek , который обозначает текущий день недели.

Далее мы смотрим, равняется ли значение нашей переменной dayOfWeek значениям SUNDAY либо SATURDAY . В случае, если это так, программа выводит “Сегодня выходной”. Если же нет, то мы проверяем, равняется ли значение переменной dayOfWeek значению FRIDAY . В случае, если это так, программа выводит “Завтра выходной”. Если же и в этом случае нет, то вариантов у нас немного, любой оставшийся день является будним днем, поэтому по умолчанию, если сегодня НЕ пятница, НЕ суббота и НЕ воскресение программа выведет “Сегодня рабочий день”.

Заключение

  • if-then
  • if-then-else
  • switch-case

Источник: javarush.com

Организация ветвлений в Turbo Pfscal V.7.0

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

Ветвление в среде Turbo Pascal может осуществляться двумя способами: условным оператором и оператором выбора варианта. Применяя эти операторы, можно проверить выполнение условия ветвления и выбрать один вариант дальнейшего вычисления.

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

Этот оператор выбирает одно из двух направлений выполнения действий, зависящее от некоторого условия, отметим, что одна из ветвей может отсутствовать. Условие выбора всегда представлено логическим выражением, которое бывает двух типов: простое или сложное. Сложное условие построено с использованием логических операций and, or, not.

Замечание 1

Выражения в квадратных скобках являются необязательным параметром. Результат вычисления выражения будет представлен логическим значением типа boolean. Если результат истинный (true), то выполнится оператор1, который следует за оператором then. Если же результат выполнения ложный (false), то выполнится оператор2, который следует за оператором else. Если часть оператора условия, заключенная в квадратные скобки, будет отсутствовать, то управление автоматически передастся следующему оператору программы.

«Организация ветвлений в Turbo Pfscal V.7.0»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы

Условный оператор If может иметь вложенную структуру, количество вложений неограниченно. Отметим, что использование в операторе If после слова then второго оператора If может привести к синтаксически неоднозначной ситуации:

Компилятор разрешит эту неоднозначность, преобразуя этот фрагмент:

Замечание 2

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

if Ch=1 then Если переменная Ch=1,

begin $X:=Sin(X)$; то X вычисляем как sin X

$WriteLn(‘Sin(x)= ’,X)$; и выводим на монитор,

else если нет $(Ch≠1)$, то

$X:=Cos(X)$; X вычисляем как cos X и

$WriteLn(‘Cos(x)= ’,X)$; выводим на экран

В Turbo Pascal 7.0 ветвление может быть организовано и оператором выбора.

Оператор Case

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

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

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

Определение 2

Оператор Case — это идеальное средство обработки ситуаций с многими (более 2) исходами, когда условие принимает более 2 значений.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru