我理解大多数一切都在Java循环中工作但我意识到我无法理解一个循环操作的顺序.
基本上我没有理解这一点,因为我的课程中显示了这个简单但令人难以置信的代码,代码显示在下面.
public class Test {
public static void main (String[] args) {
int sum = 0;
for (int k = 1; k < 10; k += 2)
{
sum += k;
System.out.print(sum + " ");
}
}
}
Run Code Online (Sandbox Code Playgroud)
程序输出的输出是1 4 9 16 25
现在我明白它是如何重复并吐出数字但是如何创建甚至创建1.现在你可以说它创建1通过取k并将其加到sum但是不应该等于3?
它变为k = 1; 这使k等于1. k <10; 检查k是否小于10.然后问题是当k + = 2时; k现在不应该等于3,而是在此操作发生后添加2比1,2 + 1 = 3但3 + 0 = 1时,sum现在在某种程度上等于1?这是怎么回事.
我对此的理性化是,我认为任何程序都是逐行或统一地解释代码而不是跳转.
总的来说,我的问题是,当k实际上等于3时,sum是多少等于1.
for循环的各个部分在不同的时间运行.
第一部分在开始时运行一次以初始化变量.
第二个是在循环开始时循环运行,以表示是否退出.
最后一节每次都在循环的END循环处运行.
所有部分都是可选的,如果需要,可以留空.
您还可以将for循环描述为while循环:
for (A;B;C) {
D;
}
Run Code Online (Sandbox Code Playgroud)
是相同的:
A;
while (B) {
D;
C;
}
Run Code Online (Sandbox Code Playgroud)