В Java это считается примером «вложенного оператора IF»? - PullRequest
6 голосов
/ 04 сентября 2010

Здесь у нас есть давнее предположение, которое нужно прояснить в моей голове.Ниже приведен пример вложения операторов if:

if (...)
  ...;
else if (...)
  ...;

У меня сложилось впечатление, что для вложения требуется выражение if в другом if, например:

if (...)
  if (...)
    ...;

или, по крайней мере, четкое разделение области видимости, когда вы вкладываетесь внутрь else, например так:

if (...)
  ...;
else { //if the next statement didn't 
       //exist, then the curly brace changes nothing?
  ...;
  if (...)
    ...;
}

Это может сводиться к тому, как компилятор интерпретирует вещи, считается ли 'if' в else-ifна том же уровне, что и родительский элемент if, или создают ли они «новые» операторы if.Спасибо за потраченное время!

edit: Я спрашиваю, потому что я являюсь ТА в лаборатории Java, и тема дня была nested-ifs.В конце я узнал, что учитель считает мой первый пример верным для «вложенных операторов if».

Ответы [ 12 ]

0 голосов
/ 04 сентября 2010

На самом деле утверждение является примером вложения в неправильной форме.

Форма у вас есть:

if(statement1 == true)
   code1...;
else if (statement2 == true)
   code2...;

Это эквивалентно следующему:

<code>if (statement1 == false)
   if (statement2 == true)
      code2...;
else
   code1;

Однако, я думаю, что это плохая практика программирования - вкладывать в эту форму. Вы должны быть в состоянии изменить код, чтобы соответствовать более традиционной форме.

0 голосов
/ 04 сентября 2010

Вы можете вкладывать if, не объявляя else, что кажется вашим заблуждением.

...