Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对前缀增量的误解_Java_Increment_Prefix - Fatal编程技术网

Java 对前缀增量的误解

Java 对前缀增量的误解,java,increment,prefix,Java,Increment,Prefix,我不明白这个方法是怎么工作的。 我运行recur方法,输出从98开始,递增,我似乎无法理解以后会发生什么。我期望的结果是: a=98 a=99 a=99 a=100 a=100 a=101 但实际产出是: a=98 a=99 a=100 a=101 a=100 a=99 我在一个本地java测试论坛上找到了这个练习。 所以,任何解释都会对我有用 public class Test { public static void main(String[] args) {

我不明白这个方法是怎么工作的。 我运行
recur
方法,输出从98开始,递增,我似乎无法理解以后会发生什么。我期望的结果是:

a=98
a=99
a=99
a=100
a=100
a=101
但实际产出是:

a=98
a=99
a=100
a=101
a=100
a=99
我在一个本地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);
        }
    }
公共类测试{
公共静态void main(字符串[]args){
复发(98例);
}
公共静态无效重现(int a){
如果(a)
您可能缺少的是
a
是一个局部变量,这意味着
recur()
的每次执行都有该变量的副本,并且在一次执行中更改值不会影响其他执行的局部变量的值

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