使用for循环计算自然数之和:代码无法正常运行问题排查
修复计算前10个自然数和的JavaScript代码问题
你的代码无法正常运行的关键原因是没有将prompt输入的结果赋值给变量n:
- 代码里只执行了
parseInt(prompt("Enter the number: ")),但没有把这个值存到n中,导致n始终是undefined。 - 循环条件
i <= n在n为undefined时不成立,循环体完全不会执行,最终弹出的和永远是初始值0。
方案1:固定计算前10个自然数的和
如果需求是固定计算前10个自然数(1到10)的和,直接给n赋值为10即可,不需要用户输入:
<!DOCTYPE html> <html> <head> <title>Sum of first 10 Natural numbers</title> </head> <body> <script> var sum = 0; const n = 10; // 固定前10个自然数 for (let i = 1; i <= n; i++) { // 自然数从1开始,若需包含0可改回i=0 sum += i; } alert("Sum of Numbers: " + sum); </script> </body> </html>
方案2:保留用户输入功能的修复版
如果需要让用户输入数字来计算前N个自然数的和,要把parseInt的结果赋值给n,同时处理用户输入无效的情况:
<!DOCTYPE html> <html> <head> <title>Sum of first N Natural numbers</title> </head> <body> <script> var sum = 0; // 将输入结果赋值给n,并处理非数字输入 const input = prompt("Enter the number: "); const n = parseInt(input); // 验证输入是否为有效正整数 if (!isNaN(n) && n > 0) { for (let i = 1; i <= n; i++) { sum += i; } alert("Sum of Numbers: " + sum); } else { alert("请输入一个有效的正整数!"); } </script> </body> </html>
内容的提问来源于stack exchange,提问作者Shubhay Gautam
相关产品推荐
相关产品推荐

