javascript - Javascript循环错误无限循环

标签 javascript loops debugging crash infinite

我正在做我的第一个游戏蛇,但是当我吃一个矩形并尝试生成另一个我的脚本崩溃并且出现无限循环时,有时会出现问题

var coincide = false;
         var cmpt;
         do {
             mangey = Math.random();
             mangey *= canvas.height;
             t = mangey % 20;
             mangey -= t;
             mangex = Math.random();
             mangex *= canvas.width;
             t = mangex % 20;
             mangex = mangex - t;
             for (cmpt = 0; cmpt < snake.length; cmpt++) {
                 if ((snake[cmpt][0] == mangex) && (snake[cmpt][1] == mangey)) {
                     coincide = true;
                     alert(snake);
                     console.log(mangex,mangey);
                 }
             }
         }
         while ((coincide) || ((mangex > 480) || (mangex < 0)) || ((mangey > 380) || (mangey < 0)));

最佳答案

coincide = true;时,它永远不会改变,因此它始终为真,因此是无限循环。所以我要添加一个else语句:

if ((snake[cmpt][0] == mangex) && (snake[cmpt][1] == mangey))
{
  coincide = true;
  alert(snake);
  console.log(mangex,mangey);
}
else
{
  coincide = false;
}

关于javascript - Javascript循环错误无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915742/

相关文章:

node.js - Nodejs调试生产中的错误

visual-studio - Visual Studio调试

r - 根据现有变量的条件,使用 for 循环在 r 中创建新变量

java - 打印带有宽度和高度参数的三角形

c++ - 调试断言失败: vector 下标超出范围

javascript - Angular $scope 没有在 HTML 中显示正确的数据

php - jquery选择问题

javascript - jQuery:我如何监听一般的键盘输入?

javascript - Jquery ajax实时验证/超时问题

c - 为什么这个 C 循环会跳过第一次输入字母的尝试?