为什么我的 if 语句中的 else 没有返回正确的输出?

问题描述

我正在我的计算机科学课上编写代码,但我的函数无法正常工作。我重写了我的代码来举个例子:

function getWords(userWord) {
  var returnList = [];
  var wordList = [blue,red,purple];  

  for (var i = 0; i < wordList.length; i++) {
    if (userWorld == wordList[i]) {
      appendItem(returnList,wordList[i]);
      return returnList[];
    } else {
      return “Not Found.”;
    }
  }
}

我尝试了这个,它只会返回“未找到”。即使单词匹配。

解决方法

如果您使用的是 JavaScript,我解决了您的问题。 :)

您的代码中有一些拼写错误和一些错误。

看,问题在于,一旦满足条件,return 关键字就会停止执行您的 for 循环。在您的情况下,ifelse 都包含 return 关键字,因此您的 for 循环永远不会执行超过一次。

换句话说,您的 if 语句只有在您输入“蓝色”一词时才有效。

如果您将单词“red”放入数组中,它是数组中的第二个元素,您显然会进入 else 语句,因为变量 i 将为 0(在你的数组)。通过进入 else,它将返回“未找到”。它会完全停止 for 循环。

希望你现在明白:)

无论如何,这是您的解决方案朋友,如果它有效,或者您有任何疑问,请告诉我:

let word = 'purple';

function getWords(userWord) {

var returnList = [];

var wordList = ['blue','red','purple'];  

let boolCheck = false;

for (var i = 0; i < wordList.length; i++) {

    if(userWord == wordList[i]){

        boolCheck = true;

        returnList.push(wordList[i]);

    }

}

if(boolCheck){

    return returnList;

}

else{

    return "Not found.";

}

  }


let wordGet = getWords(word);

console.log(wordGet);