黑马程序员技术交流社区
标题:
紧急!!! java 这样写,打印的全是5 不明白?谁能告诉我?
[打印本页]
作者:
马云
时间:
2012-3-19 14:54
标题:
紧急!!! java 这样写,打印的全是5 不明白?谁能告诉我?
//java 这样写,打印的全是5 不明白?谁能告诉我
public static void main(String[] args) {
int x = 5;
while (true) {
x = x++;
System.out.println(x);
}
}
作者:
盛祖华
时间:
2012-3-19 15:09
先看看while语句的语法结构:
while(条件表达式)
{
执行语句;
}
当条件表达式返回值为真时,才执行{}中的代码,当执行完{}中的代码后,再检测到条件表达式的返回值,直到返回值为假时终止循环。
此例中,没有条件表达式,没有给定范围,只有一个true,所以只能一直的循环下去!
作者:
李深山
时间:
2012-3-19 15:13
//java 这样写,打印的全是5 不明白?谁能告诉我
public static void main(String[] args) {
int x = 5;
while (true) {
x = x++;//你在这里如果写成x=++x那就一直往上累加
System.out.println(x);
}
}
如果写成x=++x那就一直往上累加,而且不会终止。
作者:
攻城狮
时间:
2012-3-19 15:17
本帖最后由 李南江 于 2012-3-19 15:19 编辑
你写的是一个无限循环 重点在于x++赋值问题 无限循环 x++ (++在后赋值给x再自增),故一直是5,
如果你把++放到x前面数值就会变化了(++x 先自增再赋值)。
public static void main(String[] args) {
int x = 5;
while (true) {
x=++x;
System.out.println(x);
}
}
首先你要了解运算符的(张老师的JAVA就业培训教程44页)
作者:
周建
时间:
2012-3-19 15:19
x++的意思是用完之后再加1;你写x=x++;等于是每次都把5付给本次的x后;再把上一次的x加1;但输出的还是本次的x,还是5;
你应该把x=x++;改为x++;
作者:
朱鹏举
时间:
2012-3-19 15:26
首先你要把x=x++;改为x++;这样就不一直是5了,会向上累加,然后你求什么,要定义一个为ture的的条件,当x++不在条件之内的话就会停止,否则是一个无限循环。
作者:
王春祥
时间:
2012-3-19 15:28
周建 发表于 2012-3-19 15:19
x++的意思是用完之后再加1;你写x=x++;等于是每次都把5付给本次的x后;再把上一次的x加1;但输出的还是本次 ...
就是这个意思,x=x++,先执行的是赋值操作,可以这样理解 x=x++等价于
temp=x; x=x+1; x=temp;
作者:
曾_强
时间:
2012-4-25 14:15
x++与++x.关于运算符的思考。应该注意细节。x++是先赋值给x,x自身再加1;++x是先加1再将这个值赋值给自己。细微的艺术。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2