Javascript 我应该把我的返回真语句放在哪里
这是一个基本的javascript问题,我只是想更好地理解。我在努力理解我把return-true语句放在哪里是否重要。下面是示例代码:Javascript 我应该把我的返回真语句放在哪里,javascript,function,boolean,Javascript,Function,Boolean,这是一个基本的javascript问题,我只是想更好地理解。我在努力理解我把return-true语句放在哪里是否重要。下面是示例代码: function isValid(input) { for (var i = 0; i < input.length - 2; i++) { var charOne = input.charAt(i); var charTwo = input.charAt(i + 1); var charThree
function isValid(input) {
for (var i = 0; i < input.length - 2; i++) {
var charOne = input.charAt(i);
var charTwo = input.charAt(i + 1);
var charThree = input.charAt(i + 2);
if (charOne === charTwo && charOne === charThree) {
return false;
}
return true;
}
}
isValid("ABB");
这将返回true,但如果我将return true语句放在此处,也将返回true:
function isValid(input) {
for (var i = 0; i < input.length - 2; i++) {
var charOne = input.charAt(i);
var charTwo = input.charAt(i + 1);
var charThree = input.charAt(i + 2);
if (charOne === charTwo && charOne === charThree) {
return false;
}
}
return true; // Moved this return statement
}
isValid("ABB");
一种方法是错误的,另一种方法是正确的吗?您的第一个版本在for循环中返回true。这意味着它只执行一次循环,然后返回。那很可能是个bug
您的第二个版本可能是正确的。在for循环完成来自的所有迭代之后,从函数执行return true语句[i..length-2.第二个,因为在每次迭代后的第一个循环中,您检查字符是否相等,它将在第一个迭代中返回false或true。在第二个循环中,您检查所有组合,如果它从不为false,那么它必须为true。当您在for循环中返回时,您将完成整个循环和car在它的外面 所以答案是这取决于,如果你想漏掉一个项目,并在return语句之后继续循环,那么执行return并不是你想要的 您放在循环外部的返回允许循环在返回结果之前完成 请注意,如果希望完成迭代而不是破坏整个循环,则可以在循环内使用一个有用的关键字“继续”
我不认为其中一个必然是错误的。实际上,我更喜欢稍微不同的方法。 为了清楚起见,我通常会这样做,所以很明显,这是一个或另一个。 有了返回,很明显函数中的计算会在该点停止。我只是希望它看起来很明显
if(charOne === charTwo && charOne === charThree) {
return false;
} {
return true;
}
当然,这很重要;return语句的两个位置会导致完全不同的程序。在第一个位置,for循环保证在第一次迭代期间退出。第二个位置将处理i的每个值,直到满足条件或循环条件失败。尝试使用输入ABCCC运行每个版本的函数