Java while循环会在执行中停止吗?
当执行while循环时,java是否经常检查参数是否为true?例如,如果一个while循环是Java while循环会在执行中停止吗?,java,loops,while-loop,Java,Loops,While Loop,当执行while循环时,java是否经常检查参数是否为true?例如,如果一个while循环是 while(k=7) { Thread.sleep(5000); } 但是在5秒内,另一个线程将k更改为8,循环会继续等待还是立即退出 否,它只会在执行路径到达时进行检查。因此,在您的示例中,它将每5秒检查一次 如果希望立即收到通知,则必须使用wait()、notify()或其他同步方法 这里有一个否,它只会在执行路径到达时进行检查。因此,在您的示例中,它将每5秒检查一次 如果希望立即收到通
while(k=7) {
Thread.sleep(5000);
}
但是在5秒内,另一个线程将k更改为8,循环会继续等待还是立即退出 否,它只会在执行路径到达时进行检查。因此,在您的示例中,它将每5秒检查一次 如果希望立即收到通知,则必须使用wait()、notify()或其他同步方法
这里有一个否,它只会在执行路径到达时进行检查。因此,在您的示例中,它将每5秒检查一次 如果希望立即收到通知,则必须使用wait()、notify()或其他同步方法
这是一个条件在开始时检查一次,如果进入循环,则在每次迭代执行主体后检查一次。因此,即使在执行主体时更改了
k
,它也不会立即退出
哦,你可能是指k==7
(回想一下==
在=
赋值时比较)。有些人甚至会编写7==k
,以避免潜在的错误
这与线程没有多大关系。例如,考虑:
int k = 7;
while (k == 7) {
k = 8;
System.out.println("here!");
}
在这里
请注意,即使将
k
立即更改为不再满足循环条件的值,主体仍然完全执行。该条件在开始时检查一次,如果进入循环,则在每次迭代执行主体后检查一次。因此,即使在执行主体时更改了k
,它也不会立即退出
哦,你可能是指k==7
(回想一下==
在=
赋值时比较)。有些人甚至会编写7==k
,以避免潜在的错误
这与线程没有多大关系。例如,考虑:
int k = 7;
while (k == 7) {
k = 8;
System.out.println("here!");
}
在这里
请注意,即使将
k
立即更改为不再满足循环条件的值,主体仍然完全执行。否。即使k
是易失性的(或者,更糟糕的是,从另一个线程更改而不使其易失性;坏主意)或者,如果对象的属性可以通过在循环内调用的方法进行更改,则只会在循环体的末尾对其进行检查,从而决定重复循环体或继续通过循环
您可以通过中断线程并将捕获放在循环外,或者通过内部检查和
break否来中断循环。即使k
是易变的(或者,更糟糕的是,从另一个线程更改而不使其易变;坏主意)或者,如果对象的属性可以通过在循环内调用的方法进行更改,则只会在循环体的末尾对其进行检查,从而决定重复循环体或继续通过循环
您可以通过中断线程并使捕获位于循环外部,或者通过内部检查和中断来中断循环,您使用的是=
而不是=
。可能是打字错误。其次,k
是一个实例变量吗?什么是k
?您省略了与之相关的代码…上的每一行都按照它所说的做,不再做更多。它不知道它周围的其他行在另一个场景中会做什么。当它睡觉的时候,这就是它所做的一切。顺便说一句,如果它确实立即停止,那么设置睡眠时间有什么意义呢?您使用的是=
而不是=
。可能是打字错误。其次,k
是一个实例变量吗?什么是k
?您省略了与之相关的代码…上的每一行都按照它所说的做,不再做更多。它不知道它周围的其他行在另一个场景中会做什么。当它睡觉的时候,这就是它所做的一切。顺便说一句,如果它立即停止,那么设置睡眠时间有什么意义呢?