为何JavaScript循环中的continue语句表现与break一致?
关于JavaScript中continue语句未正常工作的问题解答
嘿,我仔细看了你的问题和代码,发现核心问题其实挺明显的,来给你拆解一下:
- 你提供的代码里根本没有
continue语句!你说continue的表现和break完全一样,但当前代码里既没有continue也没有break,这大概率是你贴代码的时候漏写了关键部分,或者测试时不小心把continue写成break了~ - 你的循环条件限制了遍历范围:
loopCounter <=2意味着循环只处理数组的前3个元素(索引0、1、2),数组最后一个元素-459.15根本不会被遍历到,就算有正确的continue逻辑,也没法处理剩余元素。 - 再说说
break和continue的本质区别:break是直接终止整个循环,不管后面还有多少元素都不再处理;而continue是跳过当前循环的剩余代码,直接进入下一次迭代,继续处理后面的元素。只要代码写对,两者表现肯定天差地别。
如果你原本想实现“遇到非数字数据就跳过,继续处理后面的温度值”,那修正后的代码应该是这样的:
var degFahren = [212, 32, "string data", -459.15]; var degCent = []; var loopCounter; // 用数组长度作为循环条件,确保遍历所有元素 for (loopCounter = 0; loopCounter < degFahren.length; loopCounter++) { if (isNaN(degFahren[loopCounter])) { alert("Data '" + degFahren[loopCounter] + "' at index " + loopCounter + " is not a valid number!"); continue; // 这里用continue跳过当前循环,直接进入下一次迭代 } // 执行温度转换逻辑 degCent[loopCounter] = (degFahren[loopCounter] - 32) * 5/9; }
你可以试试这段代码,遇到字符串的时候会弹出提示,然后跳过转换,继续处理最后一个合法的温度值,这才是continue该有的表现~
内容的提问来源于stack exchange,提问作者Virginia Balseiro
相关产品推荐
相关产品推荐

