Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > if...if...else


Автор: Lios 4.6.2005, 22:50
Народы! Такой у меня вопрос...

Как отличить:

Код

if <усл.1> then
  if <усл.2> then <...>
  else <...>;


от:

Код

if <усл.1> then
  if <усл.2> then <...>
else <...>;


Т.е. компилятор относит else к ближайшему (внутреннему) if?

Автор: kometa_triatlon 4.6.2005, 23:02
Что-то я не заметил отличия... Или ты думаешь компилятор обращает внимание на отступы?
Цитата
Т.е. компилятор относит else к ближайшему (внутреннему) if?

Да.

Автор: Irokez 4.6.2005, 23:04
при анализе кода, когда встречается структура if - компилятор будет искать блоки пока не встретит окончание if или блок else, т.е. если встретился if, затем вложенный if, затем else, то компилятор и отнесет else к последнему встреченному if, т.е. вложенному

Автор: Lios 5.6.2005, 01:39
Ага, всем спасибо! : )

kometa_triatlon
Цитата
Что-то я не заметил отличия... Или ты думаешь компилятор обращает внимание на отступы?

Знаю, что нет!
Это я для выражения своей мысли отступы ставила... чтобы не пришлось "всё сказанное пояснять словами" (с) : )

Автор: Poseidon 10.6.2005, 03:51
Я бы хотел дополнить, что, если хочешь использовать else для внешнего if, то просто ставь "пустое" else

Код
if <усл.1> then
  if <усл.2> then <...>
  else
else <...>;

Автор: SoWa 10.6.2005, 18:29
Код

if <> then
if <> then
begin

end else begin end else

Так если много операторов

Автор: Lios 11.6.2005, 00:46
А я бегин-энд ставила как раз для внешнего, даже если внутри кроме ифа без элса ничего не было!

Poseidon, SoWa, спасибо! : )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)