class Java_code {
public static void main(String args[]){
mymethod(5);
}
static void mymethod(int counter){
if(counter==0){
System.out.println("");
}
else {
System.out.println("Hello" + counter);
mymethod(--counter);
System.out.println("" +counter);
}
}
}
假设我们有上面的程序,当我给出参数5时,它会打印
Hello5
Hello4
Hello3
Hello2
Hello1
之后,它打印
0
1个
2个
3
4
但是,为什么要打印数字,它是怎么发生的呢?我不知道那是怎么回事,您能帮我这个忙吗?
请记住,只要counter!= 0,就会执行这三行
System.out.println(“ Hello” +计数器);
mymethod(-counter);
System.out.println(“” + counter);
最初使用counter = 5调用mymethod()。因此,它输出“ Hello5”,并在返回之前以counter = 4递归调用自身,因此输出“ Hello4”,并在返回之前,以counter = 5递归调用自身。 3所以打印“ Hello3”,在它返回之前,它以counter = 2递归调用自己,所以打印“ Hello2”,并且在它返回之前,它以counter = 1递归地调用自己,所以打印“ Hello1”,然后在它返回之前,它以counter = 0递归地调用自身,此时它不打印任何内容,但返回到调用方,该调用方将在每个正在进行的先前执行中执行其余代码System.out.println(“” + counter),以其方式回到初始调用者函数,它将分别打印值0、1、2、3、4。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句