Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvPmCdBOP 116 of 420 menu
◀ ▶

Проблема необязательности фигурных скобок в Java

Несмотря на то, что Java допускает показанные выше сокращения с фигурными скобками, так лучше не делать: это рассадник трудноуловимых ошибок.

Пусть, к примеру, есть следующий код:

int num = 3; if (num > 0) System.out.println(num);

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

int num = 3; if (num > 0) System.out.println(num); System.out.println("Y");

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

Фактически наш код эквивалентен такому:

int num = 3; if (num > 0) { System.out.println(num); } System.out.println("Y"); // эта строка оказалась снаружи условия

А мы бы хотели такой код:

int num = 3; if (num > 0) { System.out.println(num); System.out.println("Y"); // эта строка внутри условия }

Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, чтобы не попадать в такого рода ошибки.

Не запуская код, определите, что выведется на экран:

int num = 5; if (num == 5) System.out.println(num); System.out.println("Y");

Не запуская код, определите, что выведется на экран:

int num = 0; if (num == 5) System.out.println(num); System.out.println("Y");

Не запуская код, определите, что выведется на экран:

int num = 0; if (num == 5) System.out.println(num); System.out.println("N"); System.out.println("Y");
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить