Нужно ли использовать begin чтобы сработало else?
Как правильно оформить условие? Можно ли сделать так:
if (x <> 1001) then
writeln(x)
else
writeln('-1');
Или нужно делать так:
if (x <> 1001) then begin
writeln(x);
end
else
writeln('-1');
Нужно ли писать begin, чтобы сработало else (как во 2 случае)? Или else может работать и без begin? (как в первом случае)
Ответы (2 шт):
Да, можно так написать это не считается неправильным
Обычно блок
Begin
...
End
используют для объединения нескольких команд в единый блок, но нет запрета на использования блока для одной команды как в вашем случае. Но есть рекомендации использовать begin end нежели опускать, по причине если в дальнейшей разработки вы добавите еще одну команду то в else есть вероятность что вы можете упустить добавить блок и ваша новая команда будет выполняться всегда.
else
firstcommand();
....
else
onecommand();
secondcommand();
или
else
begin
firstcommand();
end
....
else
begin
onecommand();
secondcommand();
end;
Если действие после then одно, то можно и без begin .. end его записать.
begin .. end в условиях, обычно используется для предотвращения ошибок в логике и формирования правильной структуры нескольких условий. Например:
// Неправильное форматирование и структуру не так просто заметить
if (x <> 1001) then
writeln(x);
if x <> 1002 then
writeln(x)
else
writeln('-1'); // этот else относится ко второму if, а не к первому!
// А вот так, все наглядно
if (x <> 1001) then
begin
writeln(x);
if x <> 1002 then
writeln(x)
end
else
writeln('-1');