tar*_*oyf 2 java increment prefix
我不明白这种方法是如何工作的.我运行该recur方法,输出从98开始,增加,我似乎无法理解后来发生了什么.我期望的输出是:
a=98
a=99
a=99
a=100
a=100
a=101
Run Code Online (Sandbox Code Playgroud)
但实际输出是:
a=98
a=99
a=100
a=101
a=100
a=99
Run Code Online (Sandbox Code Playgroud)
我在本地java测试论坛中找到了这个练习.所以,任何解释都对我有用.
public class Test {
public static void main(String[] args) {
recur(98);
}
public static void recur(int a) {
if (a <= 100) {
System.out.println("a=" + a);
recur(++a);
System.out.println("a=" + a);
}
}
Run Code Online (Sandbox Code Playgroud)
recur(98)
print "a=98"
recur(99)
print "a=99"
recur(100)
print "a=100"
recur(101)
do nothing
print "a=101" // that's the value of a in recur(100) after being incremented once
print "a=100" // that's the value of a in recur(99) after being incremented once
print "a=99" // that's the value of a in recur(98) after being incremented once
Run Code Online (Sandbox Code Playgroud)
您可能缺少的是a本地变量,这意味着每次执行recur()都有自己的变量副本,并且在一次执行中更改值不会影响其他执行的局部变量的值.
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |