作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
while(!loggedIn) {
loggedIn = login.getDone();
}
System.out.println("madeIt");
即使我知道 login.getDone() 在某个时刻返回 true,打印行也永远不会执行。但是,如果我使用以下代码:
while(!loggedIn) {
loggedIn = login.getDone();
System.out.println(loggedIn);
}
System.out.println("madeIt");
然后执行最后一个打印行。我不知道为什么。有谁知道为什么会发生这种情况吗?
有关更多代码,请参阅我的整个主类:
public class GameManager {
public static void main (String args[]) {
boolean loggedIn = false;
String username;
int playerNum;
int i = 0;
Login login = new Login();
while (!loggedIn){
loggedIn = login.getDone();
//System.out.println(loggedIn);
}
login.close();
System.out.println("Logged in");
}
}
以及整个登录类:
import squint.*;
import javax.swing.*;
import java.util.*;
public class Login extends GUIManager {
private final int WINDOW_WIDTH = 200, WINDOW_HEIGHT = 150;
private JButton login;
String name;
boolean done;
int playerNumber;
public Login() {
done = false;
this.createWindow( WINDOW_WIDTH, WINDOW_HEIGHT );
this.setTitle("Hearts Login");
login = new JButton("Click");
contentPane.add(login);
}
public void buttonClicked( ) {
done = true;
System.out.println(done);
}
public boolean getDone() {
return done;
}
}
最佳答案
如果 loggeIn
或 getDone
返回的变量被另一个线程设置为 true
并且未声明,则可能会发生这种情况 volatile
。
如果您提供更多代码,可能会更容易确定您的问题。
关于Java while循环的微妙之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22773649/
我正在研究 http://www.qxl.dk/我遇到了问题。如果将最左边的列和中间列之间的间距与中间列和最右边的列之间的间距进行比较,您会发现它们至少相差 10 个像素。 间距是通过使用 10px
我正在寻找一种技术,它不像我见过的大多数技术那样令人讨厌,它会暂时引起人们对一小段通知的注意。 我一直在笨手笨脚地添加和删除类和包装器 div,到目前为止没有取得太大成功。 感谢建议。 最佳答案 我使
我是一名优秀的程序员,十分优秀!