gpt4 book ai didi

java - 为什么 while 循环中的 if 语句仅在调试时执行?

转载 作者:行者123 更新时间:2023-12-01 18:10:22 24 4
gpt4 key购买 nike

所以我正在制作一个 tic-tac-toe 游戏,并且我正在使用由 IntelliJ 中的 JButtons 制作的 GUI。这是我当前的代码,用于检测何时按下按钮并用 XO 标记它。

public static void taketurn(){
Boolean gamerunning = true;
while(gamerunning){
if(button1.getModel().isPressed()) {
button1.setText("X");
gamerunning = false;
}
}
}

我的问题是,运行代码时,它创建的 UI 一切正常,但单击按钮没有任何效果。但是,当我进入调试状态并在 button1.setText("X") 处中断,然后从那里向前迈进时,它会正确执行代码并出现 X 。为什么这只能在有中断的调试中起作用,而不能在正常运行中起作用?

最佳答案

可能发生的情况是,当全速运行时,if 在 while 循环重新开始之前没有执行。您是否考虑过在按钮上使用actionListener?创建按钮时尝试类似的操作

button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//logic here to add X or O
}
}});

然后,您不必担心运行循环来等待用户选择。每当他们按下按钮时,您的逻辑就会处理添加 X 或 O

关于java - 为什么 while 循环中的 if 语句仅在调试时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33506334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com