当前位置: 首页 > 知识库问答 >
问题:

为什么如果块不工作[重复]

璩涛
2023-03-14
boolean gameContinues = true;
gameWindow.addKeyListener(new KeyAdapter() {
    @Override
    public void keyPressed(KeyEvent e) {
        if (e.getKeyCode() >= KeyEvent.VK_LEFT && e.getKeyCode() <= KeyEvent.VK_DOWN) {
            directionGoing = e.getKeyCode() - KeyEvent.VK_LEFT;
            gameStart = true;
        }
    }
});

while (gameContinues) {
//  for(int i = 0; i < 1000000000; i++) {
//      for(int j = 0; j < 1000000000; j++) {
//          
//      }   
//  }
    if (gameStart) {
        start();
        gameContinues = false;              
    }
}

private void start() {
    // game operations
    System.out.println("started");
}

gameStart是一个全局变量,初始值为false。通常,当我点击左、右、上或下按钮时,gameStart变量设置为true,但if(gameStart)不起作用。但是当我用注释的块减慢速度时,if(gameStart)运行正常。为什么会发生这种情况?

共有1个答案

凌琦
2023-03-14

也许你正面临着一个所谓的“种族状况”。在这里查找:比赛-条件-例子

你为什么不直接用Rest来离开 while 循环呢

这应该对你有用:

if (gameStart) {
    start();
    break;            
}
 类似资料:
  • 当我调用下面的代码时,我总是得到 用户的值。Id和密码有效。结果错误总是说“无效令牌”,我没有尽可能地看到它,因为我得到它并立即检查它和它的错误。这只是一个理智测试——我通常通过电子邮件向用户发送令牌,但这也不起作用。 UPDATE 1我在同一个控制器中定义UserManager,如下所示: UPDATE 2这是我的Application ationUserManager代码:

  • 如果我在浏览器控制台输入这个表达式(带有严重的口音): 它将返回: 但是如果我输入这个表达式(带单引号): Math.sin'1' 它将返回错误: 你能解释一下为什么会这样吗?

  • 我只是按照spring的指示将响应发送回特定用户,而不是广播消息。但最终,无法发送回响应消息。 这是我的js代码: 这是控制器: 这是Spring配置: 请帮忙。谢谢提前。 我已经尝试使用@SendToUser,@SendToUser(/队列/resp)和SimpMessagingTem板以及,完全不能响应消息到浏览器。

  • 使用scandir()函数时,我收到以下php警告: Scandir无法打开目录:公共html/page2中不允许操作。php在线3 第2页。php 我想使用这个功能来打印我的根文件夹的文件和子目录,但它不工作。 有人知道怎么修吗?

  • 有人能找出为什么我的不能工作。也许我错过了什么。我意识到这可能是愚蠢的没有任何更多的上下文比我所展示的,但请您询问,我将很乐意提供更多。 这是一段很大的代码,所以我不知道如何用它生成SSCE。您正在查看的是子类的构造函数,它包含3个面板。此时,只是一个。方法打开一个filechooser,然后加载选定的图像,该图像被绘制到上。图像显示良好,一切正常,除了我调整窗口大小时,没有滚动条。