Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “为什么?”;中断&引用;不允许我像应该的那样退出循环?_Javascript - Fatal编程技术网

Javascript “为什么?”;中断&引用;不允许我像应该的那样退出循环?

Javascript “为什么?”;中断&引用;不允许我像应该的那样退出循环?,javascript,Javascript,我正在尝试学习javascript,并正在创建一个基本的刽子手游戏。然而,当我试图打破我的循环时,我不断地得到一个错误。我一辈子都搞不懂 提前感谢你的帮助 var words = [ "javascript", "monkey", "amazing", "pancake" ]; var word = words[Math.floor(Math.random() * words.length)]; var answerArray = []; for (var i = 0; i

我正在尝试学习javascript,并正在创建一个基本的刽子手游戏。然而,当我试图打破我的循环时,我不断地得到一个错误。我一辈子都搞不懂

提前感谢你的帮助

var words = [
  "javascript",
  "monkey",
  "amazing",
  "pancake"
];

var word = words[Math.floor(Math.random() * words.length)];
var answerArray = [];

for (var i = 0; i < word.length; i++) {
  answerArray[i] = "_";
}

var remainingLetters = word.length;

while (remainingLetters > 0) {
  alert(answerArray.join(" "));
}

var guess = prompt("Guess a letter, or click Cancel to stop playing.");

if (guess === null) {
  break;
} else if (guess.length !== 1) {
  alert("Please enter a single letter.");
} else {
  for (var j = 0; j < word.length; j++) {
    if (word[j] === guess) {
      answerArray[j] = guess;
      remainingLetters--;
    }
  }
}

alert(answerArray.join(" "));
alert("Good job! The answer was " + word);
var单词=[
“javascript”,
“猴子”,
“太棒了”,
“煎饼”
];
var word=words[Math.floor(Math.random()*words.length)];
var answerArray=[];
for(变量i=0;i0){
警报(answerArray.join(“”);
}
var guess=prompt(“猜一个字母,或单击取消停止播放”);
如果(猜测===null){
打破
}else if(guess.length!==1){
警告(“请输入一个字母”);
}否则{
for(var j=0;j
将中断放在循环中
var单词=[
“javascript”,
“猴子”,
“太棒了”,
“煎饼”
];
var word=words[Math.floor(Math.random()*words.length)];
var answerArray=[];
for(变量i=0;i0){
警报(answerArray.join(“”);
var guess=prompt(“猜一个字母,或单击取消停止播放”);
如果(猜测===null){
打破
}else if(guess.length!==1){
警告(“请输入一个字母”);
}否则{
for(var j=0;j警惕(“干得好!答案是“+字”)如果没有看到代码的其余部分来理解范围,我会假设您使用的break不正确。相反,您应该使用return

Break用于循环内部(用于、while、in、switch等)。 其中as return用于从函数返回,if阻塞,并且可以返回值或不返回值

if(猜测===null){

return;
中断javascript仅用于循环,而不是if语句,因此在运行代码时会收到该错误消息。其次,while循环成为无限循环,因为您无法停止警报以在提示中输入任何内容 我会这样重写它:

var words = [
        "javascript",
        "monkey",
        "amazing",
        "pancake"
    ];
var word = words[Math.floor(Math.random() * words.length)];
var answerArray = [];

for (var i = 0; i < word.length; i++) {
        answerArray[i] = "_";
    }

var remainingLetters = word.length;
while (remainingLetters > 0) {
        alert(answerArray.join(" "));
        var guess = prompt("Guess a letter, or click Cancel to stop playing.");
        if(!guess){
          alert('Please enter a letter!')
        }
        else if(guess.length != 1) {
          alert('Please enter a single letter!')
        }
        else {
            for (var j = 0; j < word.length; j++) {
            if (word[j] === guess) {
               answerArray[j] = guess;
                remainingLetters--;
              } 
            }
        }
    }

alert(answerArray.join(" "));
alert("Good job! The answer was " + word);
var单词=[
“javascript”,
“猴子”,
“太棒了”,
“煎饼”
];
var word=words[Math.floor(Math.random()*words.length)];
var answerArray=[];
for(变量i=0;i0){
警报(answerArray.join(“”);
var guess=prompt(“猜一个字母,或单击取消停止播放”);
如果(!猜测){
警报('请输入字母!')
}
else if(guess.length!=1){
警报('请输入一个字母!')
}
否则{
for(var j=0;j
预计中断的循环是哪个循环?那不是
while
永远不会中断吗?“我一直收到一个错误”你为什么不告诉我们错误是什么?你能正确缩进你的代码吗?它当前不可读。
while(remainingler>0){alert(answerArray.join(“”);}
Javascript永远不会停止这样做,而且在这样做的同时,它不会做任何其他事情。您唯一的机会是在循环中修改
Remainingler
。谢谢。我放错了一个结束括号。典型的新手错误。感谢您的帮助!if(!break)与if(break==null)是一样的阅读关于Truthy和Javascript的文章没问题,我们都是为了变得更好,伙计!