相信很多小伙伴们都被m++、++m整蒙过,到底什么时候+1啊,当然这个问题也困扰过小编。今天小编就带领大家看看他的真面目!
咱们先来看个代码,小试牛刀一下:
public class FristSample{
public static void main(String[] args){
int a = 0;
for(a++ > 0){
System.out.println(a + "###");
}
else{
System.out.println(a + "===");
}
}
}
大家看出答案了吗?
公布答案啦~
答案是:1===
肯定又有许多友友们失足了,没关系,咱们就从这里入手,解决他们!
首先需要了解几个知识点:
- ++在变量前(如++m)意味着++所在语句中,++的优先级最高,因此先执行
- ++在变量后(如m++)意味着++所在语句中,++优先级最低,但优先级高于后面所有语句!
了解这些之后,这道题就迎刃而解了:
由于题目中是a++,所以++优先级低于>0的优先级,因此先执行判断a是否大于0的语句,a=0所以执行else分支,但由于++优先级>之后的所有语句,因此先执行++后执行输出,很明显答案也就出来了!1===
所以下回再遇到m++和++m两兄弟,就用上面这这两句话来对付他们!