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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 窦超 黑马帝   /  2011-12-20 20:05  /  3885 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 窦超 于 2011-12-20 20:27 编辑

int x=1;
                while (x<3)//限定循环的范围,在x<3的时候执行while里面的语句
                {
                        System.out.println("x="+x);
                        x++;
                }
                System.out.println("Hello World!");
        }
}
这里面的x++换成x+2为什么不行,我有点不是很明白x+=2的意义。。。是x+等于2还是怎么的,谢谢解答帮助。。。小细节最要命

13 个回复

倒序浏览
本帖最后由 郝锡强 于 2011-12-20 20:19 编辑

x+2,执行就是3了
x++运算的时候x还是1,之后才赋值为2的x=x+2,就是直接赋值给x=3
内存当中就是先算x+2,然后将值放回x的位置
回复 使用道具 举报

举例子

本帖最后由 陈腾跃 于 2011-12-20 20:14 编辑

x=x+2功能上等同于x+=2,也就是x=x+2换一种格式,换一种写法;
举例子:x++; 等同于x=x+1;等同于x+=1;

x+2为什么不行呢?因为你要x+2后的值,你给谁呢?你没告诉计算机啊。就是说你没有设定那个变量接收x+2这个计算后的值!
所以要实现你x+2的意思,要写x = x + 2。即x加上2的值再赋给x本身,这样x才真正加上2了!
回复 使用道具 举报
t_mac 黑马帝 2011-12-20 20:10:58
板凳
x+=2 这是赋值运算,相当于 x=x+2;
如果你这样写:
int x = 1;
x+=2;
System.out.println(x);
会输出:3
回复 使用道具 举报
x=1.    x+2就是3了不符合循环条件了.
x+=2意思就是x=x+2.
回复 使用道具 举报
首先,如果你把x++换成x+2,刚会编译时就出错,语法错了。如果将x++换成x+=2,这就相当于x=x+2,而x的初始值是1,进入while循环执行一次后,x的值就会变成3.而循环的条件是x<3,这样循环的条件就不满足了。
回复 使用道具 举报
郭繁森 黑马帝 2011-12-20 20:20:13
7#
1.x+2是不可以替换x++的位置的,x++是x=x+1,按你的意思要写成x=x+2.

2.即使你换成x=x+2,x=1(x=1肯定满足x<3)执行while循环,循环后x就=3,此时不满足x<3的条件,所以没反应了。

3.大家都知道x+=2是x=x+2的简写,理解还是各不相同的,个人理解是把=号和+号换位,自然就会x放在+和=中间了。这样记感觉比较方便

希望能帮到哥们
回复 使用道具 举报
窦超 黑马帝 2011-12-20 20:28:42
8#
陈腾跃 发表于 2011-12-20 20:09
x=x+2功能上等同于x+=2,也就是x=x+2换一种格式,换一种写法;
举例子:x++; 等同于x=x+1;等同于x+=1;

谢谢。。。说的很形象
回复 使用道具 举报
窦超 黑马帝 2011-12-20 20:29:28
9#
郝锡强 发表于 2011-12-20 20:08
x+2,执行就是3了
x++运算的时候x还是1,之后才赋值为2的x=x+2,就是直接赋值给x=3
内存当中就是先算x+2, ...

谢谢指教
回复 使用道具 举报
窦超 黑马帝 2011-12-20 20:29:58
10#
t_mac 发表于 2011-12-20 20:10
x+=2 这是赋值运算,相当于 x=x+2;
如果你这样写:
int x = 1;

谢谢指教
回复 使用道具 举报
窦超 黑马帝 2011-12-20 20:30:19
11#
余松霖 发表于 2011-12-20 20:13
x=1.    x+2就是3了不符合循环条件了.
x+=2意思就是x=x+2.

谢谢指教
回复 使用道具 举报
窦超 黑马帝 2011-12-20 20:30:55
12#
黑马巩伟伟 发表于 2011-12-20 20:19
首先,如果你把x++换成x+2,刚会编译时就出错,语法错了。如果将x++换成x+=2,这就相当于x=x+2,而x的初始值是 ...

谢谢指教
回复 使用道具 举报
本帖最后由 为梦而战 于 2011-12-20 20:32 编辑

       x+=2;相当于x=x+2;你那个代码:第一次循环时,因为x=1;满足while(x<3)里的循环条件,所以会执行循环体中的执行语句,输出1,如果你把x++;换成x+=2,当第一次循环并输出1后,执行x+=2,也就是相当于执行x=x+2;这样x=3;当第二次要循环时,判断x=3不满足循环条件了,所以循环退出,开始执行System.out.println("Hello World!");最后输出:x=1
               Hello World!
     而x++;相当于x=x+1;这样每循环一次,x的值就加1,所以可以循环两次。最后输出:x=1
                                                                                                                                          x=2
                                                                                                                                          Hello World!


回复 使用道具 举报
窦超 黑马帝 2011-12-20 20:31:31
14#
guofansen 发表于 2011-12-20 20:20
1.x+2是不可以替换x++的位置的,x++是x=x+1,按你的意思要写成x=x+2.

2.即使你换成x=x+2,x=1(x=1肯定满足 ...

谢谢指教
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马