【发布时间】:2015-09-30 02:40:34
【问题描述】:
我遇到了一个问题,即 if 语句仅在 while 循环中发生其他事情时才运行。
这是我要使用的代码:
public void load() throws IOException, InterruptedException {
while (true) {
if (findGame == true) {
System.out.println(findGame);
}
}
}
这是简化的,但它显示了我的问题。基本上,当findGame == true 时,if 语句不会运行。我认为 if 语句没有运行的原因是变量没有被打印到控制台。
我做了一些测试,发现 if 语句运行的代码如下:
public void load() throws IOException, InterruptedException {
while (true) {
System.out.println("foo"); // New code added
if (findGame == true) {
System.out.println(findGame);
}
}
}
我的问题是为什么它适用于上面的代码而不是第一个?两者之间的唯一区别是有效的那个在 while 循环中添加了其他内容。
如果有什么不同,我上面显示的代码是在单独的线程中运行的。
【问题讨论】:
-
只是一个注释,而不是
if (findGame == true),你可以简单地写if (findGame),因为findGame已经是一个布尔值。 -
@Marv 这是一个很好的观点 - 谢谢 :) 我会在我的代码中改变它。
标签: java multithreading if-statement while-loop