java - 这个代码怎么会出现一个数字三角形?
问题描述
我是java的初学者,这段代码在我正在阅读的书中使用,但我似乎无法弄清楚它是如何工作的。
编码:
public class NumberTriangleWhile {
public static void main(String[] args) {
int number = 0;
String output = "";
while (number < 10) {
output = output + number;
System.out.println(output);
number++;
}
}
}
输出:
0
01
012
0123
01234
012345
0123456
01234567
012345678
0123456789
我不明白为什么要打印每个数字,然后以某种方式存储并在下一行中重复使用,有人可以解释一下吗?
解决方案
output
是一个字符串变量。当你像这样添加一些东西时:
output = output + number;
它不添加 的数值number
,而只是将数字与原始字符串连接起来。例如,如果is output
original1
和number
is 2
,上面的行将变为output
, 12
not 3
。
循环一直循环直到number
10。在第一次迭代中,output
从空字符串变为0
. 在第二次迭代中(number
现在已增加到 1),output
更改为01
(原来的0
加入与当前值number
- 1)。在第三次迭代中,number
递增到 2.2
然后添加output
到 form的末尾012
。这一直持续到数字为 10。
您的误解可能是您认为output
打印后变得空洞。它不是。它仍将保持相同的值。
推荐阅读
- amazon-web-services - 为什么我无法从我的 EC2 实例访问我的亚马逊 RDS 实例?
- java - 运行程序测试不同的循环结构后没有输出
- c# - c#如何强制转换为IList
并返回 IList - swift - 根据是否为第一响应者设置文本视图的背景颜色
- javascript - 使用 mocha/chai 测试时比较两个日期
- python - Conv2dTranspose 产生错误的输出形状
- android - 开发人员是否可以(甚至可取)以不同的名称发布多个应用程序?
- javascript - 深度混合代码“有效”,但我不知道为什么
- android - 当内容提供者进程停止并出现时,内容观察者会失去它的状态吗?
- php - 会话通过中间件返回 false