嵌套while循环 - 外部与内部条件

时间:2013-04-08 07:10:49

标签: java

在下面的例子中,在外部循环条件变为false之后,内部while循环是否继续执行它的语句2?或者,一旦外部while循环条件变为false,即使内部while循环的条件为真,ENTIRE循环也会退出,包括内部while循环?

while (becomes false){
    statements 1;
    statements 1;

      while ( true at the time the outer loop condition become false){
         statements 2;
         statements 2;   

         }
        }  
println("print something interesting");  

5 个答案:

答案 0 :(得分:0)

如果外部循环为真,则仅执行内部循环(针对条件进行测试)。否则,如果外部循环中断,嵌套循环就没有机会被执行。

答案 1 :(得分:0)

首先,while循环条件仅在每次迭代开始时检查。

如果在外循环迭代开始时,条件为false,则contol将被转移到外循环之后的语句,从而绕过内循环。

答案 2 :(得分:0)

将代码块(也称为花括号)中的代码视为门。如果你不满足要求进入门,那么你无法看到里面的任何东西。所以没有内部循环(因为外部循环是假的)将不会执行。

答案 3 :(得分:0)

了解while循环的工作原理可能会有所帮助。如果你写:

while(myCondition) {
    doSomething();
    doSomethingElse();
}
println("print something interesting");

然后它基本上变成(伪代码):

1. if myCondition continue to line 2, else go to line 5
2.     doSomething()
3.     doSomethingElse()
4.     go to line 1
5. println "print something interesting"

如您所见,仅在第1行检查条件。例如,如果{2}在第2行期间变为假,则没有什么可以使块短路。 (如果您需要,则必须手动重新测试myCondition,如果错误则调用myCondition。)即使breakdoSomething()循环替换,也是如此,while循环或其他任何内容。

因此,如果“语句2”使外部循环条件为假,则不会停止任何操作。程序将以快乐的方式进行,直到内部循环结束,此时out循环完成其迭代(因为在外部循环块内的内部循环之后没有任何内容)并返回重新测试其条件以查看它是否应该开始另一次迭代。只有这样外循环才能检查它的状态。

为了使它更明确,以下是您的代码基本上如何工作:

for

因此,外部条件仅在第1行 检查。如果它在任何时候都变为false,则循环甚至不会注意到它到达第1行,这只会发生在第1行到达第8行(当然第一次遇到第1行开始1. if outer-condition continue to line 2, else go to line 9 2. statements-1 3. statements-2 4. if inner-condition continue to line 5, else go to line 8 5. statements-2 6. statements-2 7. go to line 4 8. go to line 1 9. println "print something interesting" 循环)。

答案 4 :(得分:0)

使用局部变量来控制循环,以便在循环2中检查此值。