JAVA println提供意外输出

时间:2016-11-08 15:54:07

标签: java

我遇到了JAVA代码的问题,就是我有一个代码:

class test {

    public static void main(String[] args){

        int x = 0;
        int y = 0;
        while( x < 5 ){
           y = y - x;
           System.out.print(x + "" + y + " ");
           x += 1;
        }

       }
}

我在命令提示符下编译它,我得到了这个:

00 1-1 2-3 3-6 4-10

我期望输出为:

00 11 23 36 210

我不知道问题出在哪里。

感谢您的回复。

3 个答案:

答案 0 :(得分:4)

-中的y = y - x;表示减法。

很有可能你打算

y = y + x;

y += x;

也很有可能是你期待的。

00 11 23 36 410

答案 1 :(得分:0)

你看到的连字符不是连字符,而是减号,因为y最终变为负数(基于你的代码)

这样做的一种方法是将打印输出更改为正值:

System.out.print(x + "" + y + " ");

为:

System.out.print(x + "" + Math.abs(y) + " ");

答案 2 :(得分:0)

您的y正在产生负值:

您的代码:

int x = 0;
int y = 0;
while( x < 5 ){
   y = y - x;
   System.out.print(x + "" + y + " ");
   x += 1;
}

让我们尝试调试它:

  

第一次迭代y = 0-0 = 0

     

第二次迭代y = 0-1 = -1

     

第三次迭代y = -1-2 = -3

     

第四次迭代y = -3-3 = -6

     

第五次迭代y = -6-4 = -10

正如您所看到的,您基本上与预期结果相反,这表明您在某个变量上使用了相反的运算符,在这种情况下y-x应该{ {1}}。

y+x更改为y = y-x