关于m++和++m的那些事

相信很多小伙伴们都被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两兄弟,就用上面这这两句话来对付他们!

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值