A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
只需一步,快速开始
Faith-
中级黑马
黑马币:35
帖子:131
精华:0
© Faith- 中级黑马 / 2014-8-5 23:54 / 3881 人查看 / 28 人回复 / 1 人收藏 转载请遵从CC协议 禁止商业使用本文
黑马黄武先 发表于 2014-8-6 00:04 定义变量的时候已经赋值给i了,i就是0,然后你下面又搞个,i=(i++)不就是0++么?打印结果当然是0啊! ...
fantacyleo 发表于 2014-8-6 00:07 你加不加括号都一样。Java语言规范规定:赋值语句=右边的表达式必须先计算完毕之后才会将值赋给=左边的变量 ...
Faith- 发表于 2014-8-6 00:16 ++不是自增运算吗,0++不就是0+1吗
fantacyleo 发表于 2014-8-6 00:36 我明白了,你糊涂的原因不是优先级,而是对++的误解。++有两种形式: 1. 前缀 如++i 2. 后缀 如i++
dreamseekerkun 发表于 2014-8-6 00:40 不是只有一个i吗,即使先赋值在运算,那么最后i应该是1啊,只有一个啊,一说,我也有点晕了 ...
黑马黄武先 发表于 2014-8-6 01:15 不是的,你缺少表达式了,这怎么能+1呢!!
Faith- 发表于 2014-8-6 07:56 您看昂 按您说的这样如果先把 i 的值赋值给等号左边,然后在执行i+1的动作,那最后输出 i 的值不就是1 ...
fantacyleo 发表于 2014-8-6 10:26 我没说先把i赋值给左边再+1,你再仔细看我的两段原话: 赋值语句=右边的表达式必须先计算完毕之后才会将 ...
dreamseekerkun 发表于 2014-8-6 11:09 int i =0; if(i==i++&&i==1) System.out.println(i);
赋值语句=右边的表达式必须先计算完毕之后才会将值赋给=左边的变量。所以必须等i++的自增效果完成,且i++表达式的值0计算完毕之后,才会将i++的值0赋值给=左边的i,因此i最后是0
fantacyleo 发表于 2014-8-6 11:22 还是没认真看我原话:
有了黑马骑士勋章,比白马王子还要牛!