2013-11-01 90 views
-1

在此代码IM困惑,为什么它打印出 “0 1 2 3” 而不是 “3 2 1 0”为什么下面的代码打印“0 1 2 3”?

int y = 3; 
    String s = " "; 
    while (y>-1) 
    { 
     s = y + " " + s; 
     y--; 
    } 
    System.out.print(s); 

感谢。

+0

对不起改变你的线,我已经了一段时间,并不能真正想到的另一个词。我会尽量不要在下次做。 –

+2

如果您使用调试器运行此操作,您会立即看到发生了什么。 –

回答

6
s = y + " " + s; 

在字符串这样的前端添加了Y:

s = 3 
s = 2 3 
s = 1 2 3 
s = 0 1 2 3 
0
step 1: 
s = 3 

step 2: 
s = 2 3; 

step 3: 
s = 1 2 3 

就像每个循环Ÿ的价值明智被添加到字符串s

0

这是起点因为你将最新的值添加到字符串中。如果你想输出为“3 2 1 0”,则应该从

s = y + " " + s; 

s = s + " " + y;