如何将这段Java代码中的WHILE循环转换为FOR循环?
将WHILE循环转换为FOR循环的实现
下面是转换后的完整代码,完全保留原代码的核心逻辑:仅当输入有效数字时才计数累加,无效输入会提示错误并要求重新输入,直到收集到5个有效数字:
package scannerConsole; import java.util.Scanner; public class ReadingInputChallenge { public static void main(String[] args) { int sum = 0; Scanner sc = new Scanner(System.in); // 转换后的for循环:初始化counter为1,条件保持counter<=5,迭代部分留空 for (int counter = 1; counter <= 5; ) { System.out.println("Enter number #" + counter + ":"); String nextNum = sc.nextLine(); try { int num = Integer.parseInt(nextNum); counter++; // 仅输入有效时才推进计数 sum += num; } catch (NumberFormatException e) { System.out.println("Invalid Number!"); } } } }
关键说明
- 原
while循环中,counter仅在输入有效数字时才递增,所以转换为for循环时,不能把counter++放在for循环的迭代参数位置,否则无效输入也会消耗计数次数,违背原逻辑。 - 把
counter的初始化放到for循环的第一个参数中,符合for循环语法规范,同时保持原逻辑正确性:只有成功解析数字后,才手动执行counter++推进计数。 - 输入读取、异常捕获、累加求和等其余逻辑完全和原代码一致,确保功能不变。
内容的提问来源于stack exchange,提问作者Eriz Rai
相关产品推荐
相关产品推荐

