You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将这段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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:57:19