在Java中,for循环如何检查其条件?
我的问题与java在循环的“条件”中有print语句时检查for循环条件的顺序有关。这似乎是一件不现实的事情(我从未见过它以任何实际的方式使用),尽管我对打印内容缺乏理解,这让我认为我可能无法完全理解for循环的功能。最近的一次考试中出现了以下问题: 输入n=5时,以下方法将打印什么在Java中,for循环如何检查其条件?,java,for-loop,Java,For Loop,我的问题与java在循环的“条件”中有print语句时检查for循环条件的顺序有关。这似乎是一件不现实的事情(我从未见过它以任何实际的方式使用),尽管我对打印内容缺乏理解,这让我认为我可能无法完全理解for循环的功能。最近的一次考试中出现了以下问题: 输入n=5时,以下方法将打印什么 public static void mystery(int n) { for (int i = -1; i < n; System.out.print(i + " ")) { i+
public static void mystery(int n) {
for (int i = -1; i < n; System.out.print(i + " ")) {
i++;
}
}
公共静态无效神秘(int n){
对于(int i=-1;i
正确答案是:
01 2 3 4 5
在我看来,循环应该打印-1,然后将i增加1,打印0。。。。。直到i=4。然后它将打印4,将i增加1,并在循环的条件ifor (int i = -1; i < n; System.out.print(i + " "))
{
i++;
}
这里是对的引用。初始化表达式只发生一次。然后检查条件,然后循环体发生,然后增量表达式发生(您的
print
语句),然后我们重新开始
如果你通读一遍,你会发现答案很清楚
如果需要完整的详细信息,则可能还需要注意。for循环在每次执行循环后执行增量步骤(括号内的第三部分)。如果切换print语句和i++,您将得到预期的结果。
for(;){
for ( <initialization> ; <test> ; <increment> ) {
<body>
}
}
相当于:
for (int i = -1; i < n; i++)
{
System.out.print(i + " ")
}
<initialization>
while ( <test> ) {
<body>
<increment>
}
而(){
}
所以你有:
i = -1;
while ( i < n ) {
i++;
System.out.print(i + " ");
}
i=-1;
而(i
试题中的“问题”是,通常放在
和
部分的语句类型被切换
for(initialization; Boolean_expression; update)
{
//Body
}
下面是for循环中的控制流:
in 1st step value of i is -1 at start.
in 2nd step i=-1 is less then n=5 so body will be executed.
in 3rd step i will be incremented to i=0
in 4th step value of i ( which is 0 gets printed)
in 5th step Boolean expression is evaluated again and it returns true as i=0 is less then n=5. so again step 3 ( Body of loop) is executed.
第三个参数(“更新”表达式)在每次通过循环后执行。读取开始的非伪代码(作为非伪代码编号步骤的“循环”)的类似方法是删除步骤5,而是添加到步骤4的末尾。“返回到2”这句话