我遇到了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
我不知道问题出在哪里。
感谢您的回复。
答案 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