Main > Java | Java labs > if else if if else

if else if if else

26.03.2012 0 comments » Views: 2,503

if-else

Давайте рассмотрим как будут обрабатываться выражения типа этого, а именно порядок выполнения if-else:

Разумеется такие выражения, это яркий пример гавнокодерства, но нам все равно. Мы будем разбираться как работает компилятор, потому что такой бред обажают на собеседованиях. Итак вперед.

Самое главное что надо помнить это:

  • else применяется к ближайшему if
  • чтобы пропустил компилятор между if() и else должно быть только одно выражение. Это может быть тело условия {}, может быть какое-то одно выражение a++, или другое условие, но обязательно одно.

Рассмотрим выражение:

теперь используя правила описанные выше, расставим тела условий:

теперь отформатируем:

Теперь код читаемый.

 

Давайте рассмотрим еще один пример:

т.к. после первого if-a уже есть выражение a++; то следующий if это уже следующее выражение. Поэтому нарушается наше правило одного выражения между if-else и соответственно компилятор покажет ошибку.

давайте расставим тела условий и посмотрим что получилось:

отформатируем

как видим, действительно, последний else не в тему. Разумеется мы можем это исправить расширив тело первого цикла:

так уже будет все работать. Но это уже совсем другая программа 🙂

Надеюсь, теперь вам понятно, как распутывать подобные задачки. Не так уж и сложно.

 

Вопросы для собеседования:

  • объясните как будет работать такое выражение:
  • объясните как будет работать такое выражение:

 

Ответы:

  • вот так:
  • Не будет работать, т.к. в выражении допущена ошибка:

Author: | Rating: 4/5 | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>