Какими инструкциями в языках программирования организуется Ветвление?







+2 +/-
Профиль пользователя Pparent Спросил: Pparent  (рейтинг 14370) Категория: компьютеры и интернет

Ответов: 1

2 +/-
Лучший ответ

Они организуются командами переходов.

Переходы, как и циклы, могут быть условными и безусловными. Безусловный переход (в многих языках это GOTO, иногда JMP, от слова jump) тупо отправляет выполнение программы на новое место. Независимо ни от чего. Надо сказать, что во многих современных языках эта команда отсутствует и вообще среди программистов её использование, даже если она формально есть, считается дурным тоном.

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

Логический IF (извините, я опять воспользуюсь операторами Модулы-2...) проверяет условие и выполняет или одну последовательность инструкций, или, если заданно (оператором ELSE), другую. Например, IF a<0 THEN a:=-a END. Это простейший пример вычисления абсолютной величины числа "а". Если условие соблюдается (а - отрицательное число), то выполняются команды, следующие за IF (до закрывающей скобки END). Можно и явно указать те дейсвия, которые выполняются при несоблюдении условия, для этого служит оператор ELSE:

IF m<0 THEN a:=-m ELSE a:=m END. Тут абсолютная величина числа "а" присваивается переменной "m".

Часто оператор IF дополняется "вложенным" оператором ELSIF. Это удобно, если у нас не два, а несколько возможных вариантов. Например, надо определённым образом среагировать на какие-то буквы, скажем, на буквы А, В, С:

IF ch=A THEN (*тут у нас последовательность команд - реакция на букву А*)

ELSIF ch=B THEN (*реакция на букву В*)

ELSIF ch=C THEN (*реакция на букву С*)

ELSE (*реакция на любую другую букву*)

END

Аналогом вот такого развесистого, многовариантного оператора перехода является оператор CASE (в языках С он называется switch). Тут рассматривается не одно условие, а много разных, и каждому условию ставится своя последовательность команд. К примеру, тот же пример анализа букв можно написать через оператор CASE вот так:

CASE ch OF

A: (*реакция на букву А*) |

B: (*реакция на букву В*) |

C: (*реакция на букву С*)

ELSE (*чё делать, если ни одно условие не встретилось*)

END

Символ | служит закрывающей скобкой каждого варианта перебора.

Операторы типа CASE (switch и т. п.) очень удобны для синтаксического разбора введённых с клавиатуры команд (это называется парсингом), когда такие команды должны соответствовать ограниченному набору стандартных идентификаторов.

Ответил на вопрос: Mendelssohn  

Похожие вопросы

Спросил
2 Отв.
Как решать подобные задачи по ИВТ(Паскаль, подготовка к ЕГЭ)(см.)?
Ответ: Данные задачи относятся к заданиям ЕГЭ по информатике, суть которых - анализ кода программы, содержащей циклы и ветвления. От решающего задачу требуется проанализировать ход выполнения программы, для ... Читать далее...
Автор вопроса: Iranian, в категории | | |
Спросил Iranian
1 Отв.
Как зашифровать свое имя в двоичном коде?
Ответ: Если вы любитель мозговых штурмов и у вас масса свободного времени, то можно, используя Коды символов ASCII выразить своё имя, к примеру, в десятеричном ... Читать далее...
Автор вопроса: Burnier, в категории | | |
Спросил Burnier
2 Отв.
Что такое «класс» в программировании?
Ответ: Классами программисты описывают некие абстрактные типы данных. В классе также определяются свойства, данные и методы обработки данных. Классы можно объявлять ... Читать далее...
Автор вопроса: Carita, в категории | |
Спросил Carita
1 Отв.
Как получить оповещение о появлении на чужом сайте определенной фразы?
Ответ: Закажите у веб-программиста Парсер который будет постоянно проверять контентна сайте и проверять в нем наличие той самой ... Читать далее...
Автор вопроса: Crankpin, в категории | | | | |
Спросил Crankpin
3 Отв.
Как научиться писать компьютерные программы и зарабатывать на этом?
Ответ: Советую углубиться немного в другую отрасль - веб-программирования. Это очень выгодно и прибыльно. В среднем цена за сайт составляет от 3 до 5 тысяч рублей. ... Читать далее...
Автор вопроса: Contraction, в категории | |
Спросил Contraction
1 Отв.
Каково основное преимущество, получаемое при использовании функции?
Ответ: Функции позволяют делать одно и то же действие много раз подряд одинаково хорошо, в этом главное преимущество как функций, так и компьютеров в целом :) автор ... Читать далее...
Автор вопроса: Garboils, в категории |
Спросил Garboils
1 Отв.
Какой микроконтроллер выбрать новичку для начала?
Ответ: Хотел в начале предложить, что попроще, а потом подумал, что нет в этом смысла. Конечно если трудности пугают, то с простого легче начинать. Но как показывает ... Читать далее...
Автор вопроса: Reaping, в категории | | | | |
Спросил Reaping
1 Отв.
Как начинать самому учить язык программирования?
Ответ: Нет языка программирования - есть языки программирования! Какой именно язык вы хотите начать учить?! Дело в том, что все языки программирования отличаются ... Читать далее...
Автор вопроса: Sorcer, в категории