Какой результат выполнения программы?

public class B {
    public static void main(String[] args) {
        big_loop:
        for (int i = 0; i < 3 ; i++) {
            try {
                for (int j = 0; j < 3 ; j++) {
                    if (i == j) continue;
                    else if (i > j) continue big_loop;
                    System.out.print("A");
                }
            } finally {
                System.out.print("B");
            }
            System.out.print("C");
        }
    }
}
Explanation

Начинаем цикл i = 0;
__Входим во второй цикл j = 0;
____Т.к. i == j (0 == 0), то continue для вротого цикла
__Инкремент j, j = 1;
____Т.к. i < j (0 < 1), то оба if пропускаются, печатаем "А"
__Инкремент j, j = 2;
____Т.к. i < j (0 == 2), то оба if пропускаются, печатаем "А"
__Инкремент j, j = 3, выход из цикла;
__Печатаем B из блока finally
__Печатаем С
Инкремент i, i = 1
__Входим во второй цикл j = 0;
____Т.к. i > j (1 > 0), то continue big_loop;
____НО! блок finnaly всё-равно выполняется! По-этому печатаем B из блока finnaly
Переход к метке big_loop
Инкремент i, i = 2
__Инкремент j, j = 1
____Т.к. i > j (2 > 1), то continue big_loop;
____НО! блок finnaly всё-равно выполняется! По-этому печатаем B из блока finnaly
Переход к метке big_loop
Инкремент i, i = 3, Выход из цикла.
Конец.
В итоге на экране заветные AABCBB

Слідкуй за CodeGalaxy

Мобільний додаток Beta

Get it on Google Play
Зворотній Зв’язок
Продовжуйте вивчати
тести з Java
Cosmo
Зареєструйся Зараз
або Підпишись на майбутні тести