你的代码myMethod()方法中的代码报错
Invalid argument to operation ++/--
建议改成如下:
static {
int x = 5;
}
static int x, y;
public static void main(String args[]) {
x--;
myMethod();
System.out.println(x + y + ++x);
}
public static void myMethod() {
y = (x++) + (++x);
}
输出结果为:3
static {
int x = 5;
}
static int x, y;
public static void main(String args[]) {
x--;
myMethod();
System.out.println(x + y + ++x);
}
public static void myMethod() {
y = (x++) + (++x);
}
/**
我们来分析下,加载及执行过程:
首先进入主入口main,要先加载其所在类Static,没有父类,直接声明静态变量,执行静态代码,但是静态代码中的x与静态变量x是不同的,因为它是重新声明过的,因此静态变量默认初始化为0。
然后执行x--,x变为-1
执行静态方法,(x++) + (++x),x首先参与计算再自增,然后先自增再参与计算
因为y= -1 + 1,x变为1
最后执行x + y + ++x,x + y 为 1+0,再加上自增后的x,2,最后输出为1+2,即3
**/
结果为3
先执行 static {
int x = 5;
}