gpt4 book ai didi

javascript - 为什么我的 if 和 else 语句同时打印?

转载 作者:行者123 更新时间:2023-12-03 07:29:34 25 4
gpt4 key购买 nike

为什么会打印 else 和 if 语句?检查数组是否匹配第 5 行的元素是他们所做的...所以应该打印我的 if 语句。但是我的警报条件是用 if 条件打印的。我尝试过重新排列代码,但仍然没有成功。

var array1 = [1, 89, 3, 4, 5];

var array2 = [1, 2, 7, 10, 89];

for (var i = 0; i < 6; i++) {
for (var j = 0; j < 6; j++) {
if (array1[i] == array2[j]) {
document.getElementById("demo").innerHTML =
"Hello World" //Should just print this since elements match
break;
} else {
alert("Error");
break;
}
}
}

最佳答案

如果在内循环中找到匹配项时想要停止外循环,则需要给 break 赋予一个标签参数.

outer:
for (var i = 0; i < 6; i++) {
for (var j = 0; j < 6; j++) {
if (array1[i] == array2[j]) {
document.getElementById("demo").innerHTML =
"Hello World" //Should just print this since elements match
break outer;
} else {
alert("Error");
break;
}
}
}

您仍然可能会在 Hello World 之前收到一些警报被展示。您的代码会针对每对不匹配的元素发出警报,直到找到匹配项。因此,除非匹配的元素位于两个数组中的第一个,否则您将在显示 Hello world 之前收到一堆警报。 。

另外,因为你有 breakif 中和else block ,你将永远无法通过 j 的第一次迭代循环。

如果您只想要一个指示未找到匹配元素的警报,则需要将其移出循环。

var match_found = false;
outer:
for (var i = 0; i < 6; i++) {
for (var j = 0; j < 6; j++) {
if (array1[i] == array2[j]) {
document.getElementById("demo").innerHTML =
"Hello World" //Should just print this since elements match
match_found = true;
break outer;
}
}
}
if (!match_found) {
alert("Error");
}

关于javascript - 为什么我的 if 和 else 语句同时打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35855555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com