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

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
Зарегистрируйся сейчас
или Подпишись на будущие тесты