统计用户输入数字中7出现次数的代码问题求助
问题原因
- 判断逻辑错误:你将每次取余得到的个位数字存入了数组
b,但判断条件写的是b == 7,拿整个数组和数字7做比较。只有当数组里仅有一个7的时候[7] == 7才会成立,出现多个7时数组转成的字符串是7,7这类格式,和7比较永远为假,所以最多只能统计到1次。 - 输出位置错误:
console.log放在了while循环内部,会每次循环都输出一次中间值,应该等所有位遍历完成后再输出最终统计结果。 - 注意初始化统计变量
n为0,否则会出现NaN的异常结果。
修改后的代码
如果你不需要留存每一位的数字,可以直接比对当前取出的个位:
// 请自行赋值待统计的数字给a let a = 待统计数字; let n = 0; while (a) { const currentNum = a % 10; if (currentNum === 7) { n++; } a = Math.floor(a / 10); } console.log("<br><br>number of 7's:" + n);
如果你确实需要用数组b存储每一位数字,修改版如下:
let a = 待统计数字; let n = 0; const b = []; while (a) { const currentNum = a % 10; b.push(currentNum); a = Math.floor(a / 10); if (currentNum === 7) { n++; } } console.log("<br><br>number of 7's:" + n);
内容的提问来源于stack exchange,提问作者user17127619
相关产品推荐
相关产品推荐

