1.1.9 Операторы перехода (безусловный и условные)
Оператор безусловного перехода goto используется в тех случаях, когда необходимо изменить порядок выполнения программы, чтобы выполнялся не следующий оператор, а другой. Использование оператора перехода требует введение в программу меток. Метка может предшествовать любому оператору и отделяется от него двоеточием. Должна быть предварительно описана в разделе Label. Используется очень редко, только в случае, если надо передать управление впереди стоящему оператору. Необходимо учитывать, что при использовании оператора перехода, если он не является последним, также необходимо ставить метку на следующий за ним оператор.
В Turbo Pascal есть два условных оператора: if и case, но исторически сложилось, что оператор if называют условным, а оператор case – оператором выбора или варианта.
Условный оператор if используется в полной и неполной форме.
Неполная форма: if Условие then Оператор1;
полная форма: if Условие then Оператор1 else Оператор2;
Если условие верно (TRUE), то выполняется Оператор1, если условие ложно (FALSE), то в случае неполной формы выполняется следующий оператор, в случае полной формы – Оператор2.
Особенности: Выбирает только одно из двух возможных действий.
Нельзя ставить символ «;» ни перед then, ни перед else. Только внутри составных операторов (Оператор1 и Оператор2 могут быть как простыми, так и составными).
Оператор выбора case позволяет выполнить одно из нескольких действий в зависимости от значения переменной-переключателя.
case Переключатель of
Список1: Оператор1;
Список2: Оператор2;
…
СписокN: ОператорN
else ОператорEnd
end;
Порядок работы: Если переменная-переключатель принимает одно из значений Списка1, то выполняется Оператор1, а остальные пропускаются и т.д. ОператорEnd будет выполняться, если значение переключателя не совпало ни с одним из значений предыдущих списков.
Необходимо также учесть:
В неполном операторе case строка с «else» отсутствует.
Перед else символ «;» не ставится.
Переменные в списке могут разделяться запятой (например, 1,2,3,4,5) или вводиться интервалом (1..5).
Операторы могут быть составными.
Примеры использования
1. Ввести с экрана символ. Определить вид символа: цифра, буква и т.п.
Var MyChar: Char;
Begin
ReadLn(MyChar);
case MyChar of
‘0’..’9’: WriteLn(‘Это цифра’);
‘A’..’Z’: WriteLn(‘Это прописная буква’);
‘a’..’z’: WriteLn(‘Это строчная буква’)
else WriteLn(‘Это символ’)
end;
End.
2. Ввести номер месяца. Напечатать номер квартала.
Var MyNum: Integer;
Begin
ReadLn(MyNum);
case MyChar of
1..3: WriteLn(‘I’);
4..6: WriteLn(‘II’);
7..8: WriteLn(‘III’);
9..12: WriteLn(‘IV’)
else WriteLn(‘Номер месяца должен быть от 1 до 12!’)
end;
End.
- 1.1 Теоретические сведения
- 1.1.1 Структура программы в языке Паскаль
- 1.1.2 Основные типы данных
- 1.1.3 Оператор присваивания
- 1.1.4 Арифметические выражения
- 1.1.5 Логические выражения
- 1.1.6 Основные стандартные функции языка Паскаль
- 1.1.7 Основные функции ввода/вывода
- 1.1.8 Операторы цикла
- 1.1.9 Операторы перехода (безусловный и условные)
- 1.1.10 Работа с массивами
- 1.1.11 Процедуры и функции. Модули.
- 1.1.11.1 Модуль System
- 1.1.11.2 Модуль Crt
- Порядок выполнения работ
- Лабораторная работа №5. Работа с двумерными массивами
- Лабораторная работа №6. Программирование с использованием подпрограмм
- Содержание
- 1.1 Теоретические сведения 1