PrintStream out = System.out;
int sum = 0;
for(int i = 0; i<5; i++)
for(int j=i; j<5; j++)
sum++;
out.println(sum);
Run Code Online (Sandbox Code Playgroud)
输出:15.我不知道这是怎么得到的15.我试着在脑海中解决它,我一直得到25.
如果我们忽略第二个for循环,并将sum ++放在第一个for循环中,那么你得到5.但是我们如何从第二个for循环获得15?
PrintStream out = System.out;
int sum = 0;
for(int i = 0; i<5; i++)
for(int j=i; j<5; j++);
sum++;
out.println(sum);
Run Code Online (Sandbox Code Playgroud)
输出:1.如果放置会发生什么; 在声明之后.它会停止吗?
i = 0 => j goes from 0 to 4 => sum = 5
i = 1 => j goes from 1 to 4 => sum = 5 + 4 = 9
i = 2 => j goes from 2 to 4 => sum = 9 + 3 = 12
i = 3 => j goes from 3 to 4 => sum = 12 + 2 = 14
i = 4 => j goes from 4 to 4 => sum = 14 + 1 = 15
Run Code Online (Sandbox Code Playgroud)
你的第二个代码片段不能按原样编译.
编辑
现在您的第二个代码段编译:
for(int i = 0; i<5; i++)
for(int j=i; j<5; j++);
sum++;
Run Code Online (Sandbox Code Playgroud)
相当于(这就是你应该总是使用大括号的原因):
for(int i = 0; i<5; i++) {
for(int j=i; j<5; j++) {
}
}
sum++;
Run Code Online (Sandbox Code Playgroud)
这就解释了为什么输出1.
| 归档时间: |
|
| 查看次数: |
2374 次 |
| 最近记录: |