Java - очень простой синтаксис - PullRequest
0 голосов
/ 19 марта 2012

По сути, я довольно новичок в Java, и мне только что дали код, который гласит:

if (n > 1)
    l--;
m = l;

Хотя мне интересно, будет ли это эквивалентно одному из них, и если да, то какой ипочему?

# 1

if (n > 1) {
    l--;
    m = l;
}

ИЛИ

# 2

if (n > 1) {
    l--;
}
m = l;

Ответы [ 4 ]

3 голосов
/ 19 марта 2012

Это эквивалентно второму.Оператор if выполняет следующий оператор, если его выражение оценивается как true.Для компилятора не имеет значения, является ли следующий оператор единственным оператором (как в исходном образце кода) или блоком (как во второй ревизии).

2 голосов
/ 19 марта 2012

Это так же, как второй блок кода.

Если вы не видите фигурные скобки после оператора «группировки» (оператор if в вашем примере), это означает, что только следующая строка попадает в область действия этого оператора группировки.

Выходя за рамки вопроса, языки, такие как Java, C / C ++ и C #, используют фигурные скобки для объявления блоков кода, тогда как языки, такие как Python, используют пробелы. Вы можете думать, что строка кода сама по себе является блоком. Блоки могут быть построены постепенно путем объединения большего количества блоков. Это делается путем группировки блоков; в Java это делается с помощью фигурных скобок. Когда вычисляется оператор if (или цикл for, или цикл while и т. Д.), Следующий внешний блок попадает под этот оператор.

0 голосов
/ 19 марта 2012

Очевидно # 2, потому что оператор if принимает во внимание только первое выражение после него.Вот почему всегда важно использовать скобки вокруг ваших утверждений, как для ясности, так и для уменьшения количества ошибок.Нет ничего более расстраивающего, чем тратить часы на размышления о том, почему код не работает, потому что вы забыли добавить скобку куда-то

0 голосов
/ 19 марта 2012

2-й вариант.

Если нет {}, только следующий оператор является частью If case

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...