含模运算的if语句失效,console.log无输出,数组遍历任务受阻
问题解决:数组遍历与条件判断修正
你的代码存在几个关键问题,导致没有输出:
- 未遍历数组:直接对整个
numbers数组做模运算,而非逐个处理数组内的元素,必须用for循环遍历每个元素 - 模运算逻辑错误:能被3或5整除时,余数为0,而
if(0)会被判定为假,不会执行代码,正确判断应该是数字 % 3 === 0 - 拼写错误:将需求中的
apple写成了eple,cake写成了kake
修正后的代码如下:
console.log('PART 3') const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] // 用for循环遍历数组每个元素 for (let i = 0; i < numbers.length; i++) { const num = numbers[i] if (num % 3 === 0) { console.log('apple') } else if (num % 5 === 0) { console.log('cake') } else { console.log(num) } }
补充说明
如果需要处理同时被3和5整除的数字(比如15),可以在最前面添加判断逻辑:
for (let i = 0; i < numbers.length; i++) { const num = numbers[i] if (num % 3 === 0 && num % 5 === 0) { console.log('apple cake') // 同时满足时的输出 } else if (num % 3 === 0) { console.log('apple') } else if (num % 5 === 0) { console.log('cake') } else { console.log(num) } }
内容的提问来源于stack exchange,提问作者Gabriel
相关产品推荐
相关产品推荐

