最后运行的结果为什么等于5

public class test41 {
	public static void main(String[] args) {
		boolean state = false;
		int i = 1;
		if((++i > 1) && (state=true)) i++;
		if((++i > 3) || (state=false)) i++;
		System.out.println(i);
	}
}

 

因为 ++3>3的时候退出if语句。

int i = 1;

if((++i > 1) && (state=true)) i++;

if((++i > 3) || (state=false)) i++;

++i 先加加 2>1  然后state是赋值语句,此时state 是true  3

++i 先加加 4>3 true 直接 i++了。

加了4次 所以是5

如有帮助,请采纳。

以下才是你要看到的结果吧:

这个题关键点在于state=true 这个是一个赋值表达式,而不是一个判断表达式。

img

改成==判断后