我是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?
答案 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 + z
是x
0
是一个“前缀”增量,这意味着该增量将在执行语句的其余部分之前应用,使++x
= x
1
= 1 + z
= 1 + 4
返回5
func
是一个技巧(也是常见的错误区域),return x++;
是一个“后缀”,表示x++
将在执行该语句后递增(对于的原因),意味着该方法将返回x