我不得不使用 for 循环遍历字符串中的每个字符,但代码无法正常工作

I had to use a for loop to to go through each character in a string but the code is not working properly

这些是我应该做的练习的说明: 从要求用户输入任何字符串的提示开始。

使用 for 循环遍历字符串中的每个字符。

如果字符串包含字母 A(大写或小写),则跳出循环并在屏幕上打印以下消息。

如果字符串不包含字母 A,则在屏幕上打印以下消息。

这是我的代码

var text= prompt("Enter any string.")
for (var i = 0; i < text.length; i++) {
    if (text[i] === "A")
    {alert("The string contains the letter A.");
}
     if (text[i] === "a")
    {alert("The string contains the letter A.");
}
 else
      {alert("The string does not contain the letter A.");
}
}

编辑:因为 OP 特别想使用 for 循环。

  const str = "anything";
  for (let i = 0; i < str.length; i++) {
    const char = str[i];
    if (char === "A") {
      console.log("contains A");
    } else if (char === "a") {
      console.log("contains a");
    } else {
      console.log("do something...");
    }
  }

原答案:

您可以使用 includes 方法代替 for 循环。

  const str = "Anything";
  if (str.includes("A")) {
    console.log("contains A");
  } else if (str.includes("a")) {
    console.log("contains a");
  } else {
    console.log("do something...");
  }

您正在提醒循环的每次迭代,这意味着您正在为每个字母调用 'alert'。

您可能想要做的是创建一个像

这样的变量
var doesContainA = false;

然后在你的循环中,如果它等于 a 或 A,则将 doesContainA 更改为 true;

最后,做一个最终的 if 语句,根据该变量是真还是假来控制要警告的消息

此外,格式化程序可以通过排列所有内容来帮助您更轻松地阅读代码,例如 this

为什么要循环这样做,你可以这样做

if(text.includes('A')){
    alert("The string contains the letter A.");
}else if(text.includes('a')){
    alert("The string contains the letter a.");
}else{
    alert("The string does not contain the letter A.");
}

更新

var text= prompt("Enter any string.")
var letterA = false;
var lettera = false
for (var i = 0; i < text.length; i++) {
    if (text[i] === "A")
    {
        letterA = true;
    }
    if (text[i] === "a")
    {
        lettera = true
    }
}
if(letterA=== true){
    alert('string contains letter A');
}else if(lettera ===true){
    alert('string contains letter a');
}else{
     alert(' string does not contain a or A character');
}

使用 returns 布尔结果的单独函数。此方法可让您在首次出现所需字母后停止迭代:

function hasLetter(text) {
    var char;
    for (var i = 0; i < text.length; i++) {
        char = text[i];
        if (char === "A" || char === "a") {
            return true;
        }
    }

    return false;
}

var text = prompt("Enter any string.");

if (hasLetter(text)) {
    alert("The string contains the letter A.");
} else {
    alert("The string does not contain the letter A.");
}

您也可以使用函数 String.toLowerCase 并检查字符是否匹配小写字母 'a':

char = text[i].toLowerCase();
if (char === "a") {
    return true;
}