У меня есть эта функция в Java, которая вызывает себя несколько раз (т. Е. Является рекурсивной), исходя из условия, есть и команда возврата.
public class ReturnTest {
public static void main(String[] args){
returnTest(1);
}
public static void returnTest(int i){
System.out.println(" i => " + i);
if(i >= 2) {
System.out.println(" calling return ");
return;
}
System.out.println(" calling RT1, i => " + i);
returnTest(++i);
System.out.println(" calling RT2, i => " +i);
returnTest(++i);
}
}
Как работает команда возврата в этом случае?Я ожидал, что команда return выйдет из начального вызова returnTest (), однако, что происходит, она переходит к следующей команде возврата
, т.е. при возврате (когда i> = 2), она вызывает следующее
System.out.println(" calling RT2, i => " +i);
returnTest(++i);
Я пытаюсь понять, как работает возврат (особенно в этом случае), пожалуйста.помогите уточнить.
спасибо!