A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhanganping 中级黑马   /  2016-1-12 21:30  /  857 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Demo {
  2.   public static void main(String[] args) {
  3.      int a = 10;
  4.       if (a++ > 10) {
  5.           a = 20;
  6.       }
  7.     System.out.println(a);
  8.    }
  9. }
复制代码

这道题的详解是什么


10 个回复

倒序浏览
答案是 a=11。 if判断是 a=10 所以 a>10 结果为false,然后a++,a=11,最后打印结果为11。
回复 使用道具 举报
a++ 在参与运算的时候会先参加运算,再进行自加,在if判断中会先和10进行比较再进行自加,所以判断是false,if语句就不会进行,但是a已经自加,再输出以后就是11了
回复 使用道具 举报
由于是if(a++ > 10)首先判断 a > 10,这是false,然后a自增为11,由于a++>10是false,不会进入if的语句体中,也就是不会执行a = 20,所以最后输出了a 是11
回复 使用道具 举报
擎天柱 来自手机 中级黑马 2016-1-12 22:08:17
报纸
11,是前置++先加后用与后置++先用后加的区别
回复 使用道具 举报
wuzeshui 发表于 2016-1-12 21:46
a++ 在参与运算的时候会先参加运算,再进行自加,在if判断中会先和10进行比较再进行自加,所以判断是false ...

谢谢,我现在看了你的叙述才明白,
回复 使用道具 举报
zhanganping 发表于 2016-1-13 00:00
谢谢,我现在看了你的叙述才明白,

客气,我也是才刚学过
回复 使用道具 举报
楼上正解
回复 使用道具 举报
zzh111 中级黑马 2016-1-13 22:38:40
9#
学习了!!!
回复 使用道具 举报
学习了受教了
回复 使用道具 举报
樓上都是 正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马