黑马程序员技术交流社区

标题: 大神们来解答一下 [打印本页]

作者: 她只是过客    时间: 2014-9-3 21:49
标题: 大神们来解答一下

  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 int x=0;
  4.                 int y=0;
  5.                 while(true){
  6.                 x=x++;
  7.                 y=y+1;
  8.                 System.out.println("x="+x+".........y="+y);
  9.                 }
  10.                
  11.         }
复制代码

x为什么没加呢,一直是0
作者: java_dream    时间: 2014-9-3 21:58
x++是递增1,但是(x++)递增前已经赋值给x了,x++不再执行了,你可以试试x=++x。
作者: wenjd0000    时间: 2014-9-3 22:40
x =
        x++;
在eclipse里面用debug试试。。。
作者: wenjd0000    时间: 2014-9-3 22:42
wenjd0000 发表于 2014-9-3 22:40
x =
        x++;
在eclipse里面用debug试试。。。

其实x 被加为1 后,又变成0 了,这个过程应该是Java的算法问题
作者: THE_FUTURE    时间: 2014-9-3 23:01
感觉好黑的说。。。
作者: Mokill0911    时间: 2014-9-3 23:07
wenjd0000 发表于 2014-9-3 22:42
其实x 被加为1 后,又变成0 了,这个过程应该是Java的算法问题

刚开始想回答,但后来想到确实有点疑惑——

因为楼主童鞋用到了循环,所以按理第一次虽然打印的是0,但第二次应该会打印1啊~
作者: 抱香    时间: 2014-9-3 23:17
Mokill0911 发表于 2014-9-3 23:07
刚开始想回答,但后来想到确实有点疑惑——

因为楼主童鞋用到了循环,所以按理第一次虽然打印的是0,但 ...

(temp)x=0,x++,x=1,x=temp=0,x=1被覆盖。
作者: Mokill0911    时间: 2014-9-3 23:20
抱香 发表于 2014-9-3 23:17
(temp)x=0,x++,x=1,x=temp=0,x=1被覆盖。

这就是板凳同学所说的JAVA 自身的算法问题?
作者: 她只是过客    时间: 2014-9-3 23:30
抱香 发表于 2014-9-3 23:17
(temp)x=0,x++,x=1,x=temp=0,x=1被覆盖。

看不懂诶,再详细点好不好,我基础差




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2