JavaScript技术疑问:为何range函数中需用if(isSimple(i))而非直接调用isSimple(i)
问题解答
先把你的代码用代码块整理如下:
function isSimple(number) { for (let i = 2; i < number; i++) { if (number % i == 0) return false } return true } function range(min, max) { for (let i = min;i < max; i++) { if(isSimple(i)) document.write(`${i} <br>`); } } console.log(range(2, 100));
为什么要写if(isSimple(i))而不是直接写isSimple(i)?
直接写isSimple(i)只会执行质数判断逻辑,得到true或false的结果,但这个结果不会触发任何实际的输出操作——因为你没告诉代码“当判断结果为真时要做什么”。
我们的需求是只输出质数,所以必须用if来判断isSimple(i)的返回值:只有当这个函数返回true(也就是当前的i是质数)时,才执行后面的document.write把数字输出;如果返回false(不是质数),就跳过输出步骤,继续循环下一个数字。
这个写法的工作原理
- 循环遍历
min到max之间的每一个数字i; - 调用
isSimple(i)判断i是否为质数,函数会返回一个布尔值(true/false); if语句检查这个布尔值:- 如果是
true,就执行紧跟的document.write(${i}),把质数i输出到页面; - 如果是
false,就跳过输出代码,直接进入下一次循环。
- 如果是
内容的提问来源于stack exchange,提问作者Vova Panchyshyn
相关产品推荐
相关产品推荐

