如何将JavaScript代码中的for循环转换为while循环?
将for循环转换为while循环的解决方案
你的问题核心是没处理好while循环的变量声明和自增步骤,直接替换会因为缺少关键环节导致失败。下面是完整的转换后代码,以及关键要点说明:
转换后的完整代码
<html> <head> <script type="text/javascript"> function GetGrades() { var grades = []; var grade; var sum = 0; var i; // 提前声明循环变量,避免全局污染 // 第一个for循环转while i = 0; // 初始化循环变量 while(i < 5) { grade = prompt("Enter Homework " + (i+1) + " grade: "); grades.push(Number(grade)); i++; // 循环体末尾手动自增,这是while循环的关键 } // 第二个for循环转while i = 0; // 重置循环变量 while(i < 5) { document.write("Homework " + (i+1) + " grade: " + grades[i] + "</br>"); sum = sum + grades[i]; i++; // 同样要手动自增 } var avg = sum/5.0; document.write("</br>Grade: " + avg + "</br>"); } </script> </head> <body onload="GetGrades()"> </body> </html>
关键转换要点
- 声明循环变量:原代码里的
i没有用var声明,会成为全局变量,转换时要提前用var i声明,避免意外问题 - 初始化变量:在while循环开始前,必须手动设置
i = 0,对应for循环的初始化部分 - 循环条件:直接沿用原for循环的
i < 5即可 - 手动自增:while循环不会自动执行
i++,必须在循环体的末尾添加这一步,否则会陷入无限循环
内容的提问来源于stack exchange,提问作者Jonathon Moore
相关产品推荐
相关产品推荐

