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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-8-3 14:33  /  2013 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jiewin 于 2013-8-3 14:37 编辑

  1. int i = 0;
  2. while(true){
  3.         if(i++>10)
  4.                 break;
  5. }
  6. System.out.println(i);
复制代码

  1. int i = 0;
  2. while(true){
  3.         if(i++>10)
  4.                 break;
  5.         System.out.println(i);
  6. }
复制代码
请问两个代码最后输出的那个i是多少?

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

11 个回复

倒序浏览
....来看看
回复 使用道具 举报
第二个比较容易感觉..1~11  第一个..请指教
回复 使用道具 举报
本帖最后由 Jiewin 于 2013-8-3 15:35 编辑
黄兴旺 发表于 2013-8-3 14:49
第二个比较容易感觉..1~11  第一个..请指教


其实这里考的是++这个运算符,弄懂了就好理解了
就是问 i自增后才与10比较还是比较后才自增,呵呵!!
这里是比较后才自增,那么当11>10后跳出循环了,但同时也自增了,所以是12
回复 使用道具 举报
Jiewin 发表于 2013-8-3 15:31
其实这里考的是++这个运算符,弄懂了就好理解了
就是问 i自增后才与10比较还是比较后才自增,呵呵!!
这 ...

哦哦 呵呵
回复 使用道具 举报
测了之后发现错得离谱,我猜的是居然是11和0?
回复 使用道具 举报
本帖最后由 夜写意 于 2013-8-4 15:16 编辑

刚才快速回复搞的,还没打完就发表了。后来才知道还可以重新编辑。

点评

错了,哥们  发表于 2013-8-4 14:42
回复 使用道具 举报
第一个打印12,第二个,打印1-11

点评

正解  发表于 2013-8-4 14:42
回复 使用道具 举报
秦兰之 发表于 2013-8-4 10:41
测了之后发现错得离谱,我猜的是居然是11和0?

越简单的问题我们就越容易犯错,呵呵
回复 使用道具 举报
第一个是:12.因为i=11的时候,i与10比较满足if的条件,然后执行i++,最后跳出while循环,此时i的值为12.
第二个是:11.因为当i=10的时候,通过比较,没有满足条件,i++使其值增1等于11,然后打印。但是当i=11的时候,并没有打印就跳出了while循环,所以最后一次打印的是11.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马