求助:如何用取余运算符结合if函数实现正确的控制台输出逻辑
修正年龄判断中剩余等待年份的计算逻辑
你的问题出在剩余等待年份的计算逻辑上:用取余运算nint % 18完全不符合需求——取余得到的是年龄除以18后的余数,而我们需要的是距离18岁还差的年数,应该用18 - nint来计算。
另外你的else块里有一行无效代码nint < 18 && nint % 18,这行代码不会产生任何实际作用,可以直接删掉。
修正后的完整代码如下:
var n = prompt('enter number'); let nint = parseInt(n); // 计算距离18岁还差的年数 let remainder = 18 - nint; if (nint >= 18){ console.log('you can drive'); } else { console.log(`you have to wait for ${remainder} year${remainder !== 1 ? 's' : ''} to be 18 years old`); }
补充说明:
- 把判断条件改成
nint >=18,覆盖刚好18岁的情况(符合实际逻辑) - 给输出字符串加了复数处理:如果剩余1年就显示
year,大于1年显示years,让输出更严谨
内容的提问来源于stack exchange,提问作者Walisked
相关产品推荐
相关产品推荐

