Не могу разобраться, как это в Паскале.. .
Например есть ветвление, содержащее IF - ELSE IF - ELSE
Проблема с выделением блока кода (BEGIN - END).
IF < условие > then begin
< куча операторов > end
ELSE IF < Вот как тут правильно ставить операторные скобки (BEGIN, END), BEGIN идет перед IF или после? Если можно, то приведите небольшой пример >.
Например на Python-е так:
if ( условие1 ):
       (операторы)
elif ( условие2 ):
     (операторы)
else:
     (операторы)
Вот можете наподобие этого примера объяснить, как это выглядит в Паскале? Заранее Спасибо :)
Другие языки программирования и технологии
[PASCAL] IF - ELSE IF - ELSE. Программирование.
После служебного слова if должно идти только логическое выражение.
Ни чего другого после if не может быть!
Смотри на примерах:
if A = B then WriteLn('равно') else WriteLn('неравно');
После then и else по одному оператору. Значит операторные скобки не обязательны…
Хотя можно было сделать вот так:
if A = B then begin WriteLn('равно'); end
else begin WriteLn('неравно'); end;
Оба варианта 100% рабочие.
Но если нужно несколько операторов после then или else, то операторные скобки обязательны:
if A > B then begin A := A + B; B := A - B; A := A - B; end;
(В данном примере числовые значения A и B меняются без использования третьей переменной. )
Как видно из примера, внутри операторных скобок находятся 3 оператора!
Ещё операторные скобки иногда нужны для однозначности трактовки вложенных условий:
if A < B then if A < C then Write(A) else Write(C)
else if B < C then Write(B) else Write(C);
(Данный пример выводит наименьшее из A, B, C.)
Как видно из данного примера, все условия читаются однозначно.
Но если написать вот так:
if A < B then if B < C then Write('A - минимально')
else Write('A - не минимально');
То если A окажется больше или равно B, то ни какой надписи на экране не увидим.
Нужно исправить данное положение дел указав операторные скобки:
if A < B then begin if B < C then Write('A - минимально') end
else Write('A - не минимально');
(Правда теперь мы не увидим ни какого результата, если B ≥ C… Но это уже другой вопрос ;-)
Ни чего другого после if не может быть!
Смотри на примерах:
if A = B then WriteLn('равно') else WriteLn('неравно');
После then и else по одному оператору. Значит операторные скобки не обязательны…
Хотя можно было сделать вот так:
if A = B then begin WriteLn('равно'); end
else begin WriteLn('неравно'); end;
Оба варианта 100% рабочие.
Но если нужно несколько операторов после then или else, то операторные скобки обязательны:
if A > B then begin A := A + B; B := A - B; A := A - B; end;
(В данном примере числовые значения A и B меняются без использования третьей переменной. )
Как видно из примера, внутри операторных скобок находятся 3 оператора!
Ещё операторные скобки иногда нужны для однозначности трактовки вложенных условий:
if A < B then if A < C then Write(A) else Write(C)
else if B < C then Write(B) else Write(C);
(Данный пример выводит наименьшее из A, B, C.)
Как видно из данного примера, все условия читаются однозначно.
Но если написать вот так:
if A < B then if B < C then Write('A - минимально')
else Write('A - не минимально');
То если A окажется больше или равно B, то ни какой надписи на экране не увидим.
Нужно исправить данное положение дел указав операторные скобки:
if A < B then begin if B < C then Write('A - минимально') end
else Write('A - не минимально');
(Правда теперь мы не увидим ни какого результата, если B ≥ C… Но это уже другой вопрос ;-)
Это означает, что последний IF вложен в ветку ELSE, или, что это оператор IF ELSE. Да.
if else вообще не существует. Есть
if условие then оператор;
и
if условие then оператор else оператор;
Оператором может быть простой оператор или составной оператор (блок begin ...else) и даже пустой оператор, например if a>2 THEN ELSE a:=0;
А if условие then begin операторы end else begin if условие then операторы
означает, что последний IF вложен в ветку ELSE. Скобки никакие не нужны, роль скобок в операторах выполняют в Pascal слова begin и end, они и называются операторными скобками. А в связи с наличием в условном операторе слова then и в условии скобки не нужны, они применяются в Pascal в основном в арифметических выражениях (ну еще в функциях и т. п.).
if else вообще не существует. Есть
if условие then оператор;
и
if условие then оператор else оператор;
Оператором может быть простой оператор или составной оператор (блок begin ...else) и даже пустой оператор, например if a>2 THEN ELSE a:=0;
А if условие then begin операторы end else begin if условие then операторы
означает, что последний IF вложен в ветку ELSE. Скобки никакие не нужны, роль скобок в операторах выполняют в Pascal слова begin и end, они и называются операторными скобками. А в связи с наличием в условном операторе слова then и в условии скобки не нужны, они применяются в Pascal в основном в арифметических выражениях (ну еще в функциях и т. п.).
после then
else if условие then begin
else if условие then begin
Похожие вопросы
- Язык программирования паскаль, оператор if-else
- Не могу правильно написать else if на Паскале
- Программисты Python, Pascal или Scheme для обучения программированию?
- Можно ли назвать Turbo Pascal или Delphi мёртвым языком программирования?
- Как упростить программу на паскале. Т.Е. без оператора "inc" и "if .. in .. then else ...;"-13 строка.
- Нужно ли знать switch case, если есть обычный If else, стоит ли забивать себе этим голову?
- Помогите найти ошибку. Программа не работает. Пишет ELSE без IF. Не могу понять в чем дело.
- Проблема с программой в Pascal ABC,Встречено ';',а ожидалось ':'. Если менять, то вылетает ещё ошибка с if
- Язык программирования Pascal сложен в изучении?
- Господа програмисты, пишите ли вы после оператора выбора if альтернативу else и пустой оператор{}?