我无法继续执行任务

时间:2019-02-08 21:21:53

标签: java eclipse

我是Java新手,需要您的作业帮助。 这是任务:

class F {
    private static int x = 0;
    public static int funcB(int z){
        return ++x + z;
    }

    public static int func(int x) {
        x = x + 2;
        x = funcB(x);
        return x++;
    }
}
class Main {
    public static void main(String[] args) {
        int z = 2;
        int x = F.func(z);
        System.out.println(z);
        System.out.println(x);

        x = F.func(x + z);
        System.out.println(x);

    }
}

为什么x = 5?

2 个答案:

答案 0 :(得分:1)

在您的主要方法中x为5的原因在于微妙的x++。 将return语句与x ++结合使用是技巧,因为x ++意味着首先在当前指令中使用x,然后再将其加1。您的代码将扩展为     返回x;     X = x + 1

答案 1 :(得分:1)

如有疑问,请写下来。所以我们从...开始。

Tiempo   Velocidad(m/s)   Aceleracion(m/s**2)

0       181.35660.960806585459
20194.64360.6510598767
40204.50660.406977134499
60211.42560.228551371208
80215.88060.110525125706
100218.35160.0439998842013
120219.31860.0177598050305

会调用...

int z = 2;
int x = F.func(z);

因此,public static int func(int x) { x = x + 2; x = funcB(x); return x++; } 的输入为x

  • 2 = x = x + 2 = 2 + 2,所以4现在是4
  • x

会调用...

x = funcB(x)
  • 然后public static int funcB(int z) { return ++x + z; } 的输入为z
  • 4++x + zx
  • 0是一个“前缀”增量,这意味着该增量将在执行语句的其余部分之前应用,使++x = x
  • 1 = 1 + z = 1 + 4

返回5

  • func是一个技巧(也是常见的错误区域),return x++;是一个“后缀”,表示x++将在执行该语句后递增(对于的原因),意味着该方法将返回x