JavaScript嵌套if语句语法错误排查 年龄判断退休提示功能运行异常
代码问题说明与修正方案
现存问题
- 成年判断阈值错误:要求年满18周岁即判定为成年,原代码写的是
Age >= 19,会导致18岁用户被误判为未成年。 - 分支逻辑匹配错误:两个if语句为平级关系,第二个
if (Age >= 65)的else分支会和该if语句绑定,导致18-64岁的成年用户在触发成年提示后,会因不满足≥65的条件,误触发未成年提示。 - 未符合嵌套if的要求:退休年龄判断仅需要对成年用户执行,原代码的退休判断是全局执行,未成年用户也会走这个判断分支,不符合练习要求。
修正后代码
<script type="text/javascript"> var Name; var Age; Name = prompt("Please enter your name.", "full name"); Age = parseInt(prompt("Please enter your age.", "age in numerals")); // 外层判断是否成年 if (Age >= 18) { alert("Hello " + Name + " you are an adult."); // 嵌套判断是否退休,仅成年用户执行 if (Age >= 65) { alert("You are retired!"); } } else { // 仅未成年用户走该分支 alert("Hello " + Name + " you are a child."); } </script>
修正说明
调整后仅在用户年龄≥18时,才会执行内部的退休年龄判断,else分支仅和最外层的成年判断绑定,完全符合预期输出逻辑。
内容的提问来源于stack exchange,提问作者Jake T
相关产品推荐
相关产品推荐

