Что выведет следующий код?

public class Main {
    public static void main(String[] args) {
        recur(99);
    }
    public static void recur(int a) {
        if (a <= 100) {
            System.out.println("a=" + a);
            recur(++a);
            System.out.println("a=" + a);
        }
    }
}
 
Explanation
Сначала выдаст значение а = 99,а после префиксного инкремента выполнится снова метод recur с параметром 100, который выведет а=100, следующий recur будет вызван с параметром 101, но условие выполняться не будет, так как передаваемый параметр больше 100, и будет выведено на экран значение параметра а=101, закончится выполнение этого метода, и программа возвратится к предыдущему выполнению этого метода, и выдаст значение а=100, таким, каким бы выдало его, если бы метод recur и вовсе не вызывался сам в себе, а просто переменная а увеличилась бы на 1.

Слідкуй за CodeGalaxy

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

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