Как многие заявляли передо мной: они технически эквивалентными (вплоть до семантики короткого замыкания).
Но я осмелюсь сказать & & оператор является предпочтительным в любой ситуации, и что это не просто дело вкуса. Вложенное, если сложнее читать в ежедневном коде с более чем просто контрольными утверждениями и оставляет больше места для ошибки.
В основном потому, что if(b)
сообщает: «следующий блок выполняется только, если б верно».
Но это не то, что происходит! Блок выполняется только в том случае, если a и b являются истинными (это именно то, что первый метод общается довольно элегантно). Очень просто непреднамеренно вытащить его из контекста if(a)
(в любой IDE есть много способов перетасовать код) и создать ошибку.
Вложенные, если также оставляют много места для ужасного кода позже.Код клика между внутренним и внешним может затруднить понимание того, какой код выполняется, особенно если a и b являются сложными выражениями. И все становится действительно отвратительно, когда кто-то решает бросить в несколько других высказываний .. :-) Просто нет способа попасть в этот беспорядок с одним оператором .
Некоторые могут утверждать, что эта «гибкость» является основанием для использования второго метода, но я бы сказал, что почти всегда есть способ переписать это чистое использование явных условий. Кодирование достаточно сложно, не тратя все ваши мозговые циклы на логику управления.
Нижняя строка: каждый Java-программист понимает семантику оператора условного-И. Опираясь на встроенные языковые конструкции вместо того, чтобы катить свои собственные эквиваленты, имеет большой путь к ремонтопригодности и правильности.
Надеюсь, это поможет.
Это должно работать, на мой взгляд. –
вы можете добавить другие операторы во внешнем блоке 'if' вне внутреннего' if', но в первом случае оба условия должны быть истинными, чтобы попасть внутрь блока 'if' – pratZ