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

TestScoreStatistics开发求助:非预定义次数的While Loop实现

嘿,我来帮你搞定这个非预定义次数循环的问题!其实核心思路就是先动态获取用户(学生)指定的循环次数,再用这个变量来控制循环的执行次数,下面给你几种实用的实现方案:

实现非预定义次数循环的几种思路

首先,你代码里已经导入了java.util.*,刚好可以用Scanner类来读取用户输入的次数,这是实现动态循环的基础。下面分场景给你具体代码示例:

1. 先获取次数再用for循环(最直观的固定次数场景)

如果学生明确知道要重复的次数,直接先读取这个数字,再用标准for循环执行对应次数:

import java.util.*; 
public class TestScoreStatistics { 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 先获取学生输入的循环次数
        System.out.print("请输入需要重复的次数:");
        // 这里可以加个输入校验,防止用户输入非数字
        while (!scanner.hasNextInt()) {
            System.out.println("请输入有效的数字哦!");
            scanner.next(); // 跳过无效输入
        }
        int repeatCount = scanner.nextInt();
        
        // 用获取到的次数控制for循环
        for (int i = 0; i < repeatCount; i++) {
            // 这里写你要重复执行的逻辑,比如录入成绩、统计分数等
            System.out.println("正在执行第 " + (i+1) + " 次操作");
        }
        
        scanner.close();
    }
}

2. 用while循环动态控制(适合不确定次数,直到满足停止条件)

如果学生的需求不是固定次数,而是直到某个条件满足才停止(比如输入"结束"就终止),while循环会更灵活:

import java.util.*; 
public class TestScoreStatistics { 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String userChoice = "";
        
        // 只要用户不输入"结束",就继续循环
        while (!"结束".equals(userChoice)) {
            // 执行循环内的核心逻辑,比如输入成绩
            System.out.println("请输入学生成绩:");
            int score = scanner.nextInt();
            // 这里可以加成绩统计的代码...
            
            // 询问是否继续
            System.out.print("是否继续录入?输入「结束」停止:");
            scanner.nextLine(); // 吃掉换行符
            userChoice = scanner.nextLine();
        }
        
        scanner.close();
    }
}

3. do-while循环(至少执行一次的场景)

如果不管怎样都要先执行一次循环体,再判断是否继续(比如必须先录入一次成绩,再问要不要继续),就用do-while:

import java.util.*; 
public class TestScoreStatistics { 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        boolean keepGoing = true;
        
        do {
            // 先执行一次核心逻辑
            System.out.println("请输入学生成绩:");
            int score = scanner.nextInt();
            // 处理成绩的代码...
            
            // 询问是否继续
            System.out.print("还要继续吗?(y/n):");
            String choice = scanner.next();
            keepGoing = choice.equalsIgnoreCase("y");
            
        } while (keepGoing);
        
        scanner.close();
    }
}

小提醒

  • 处理用户输入时,记得做校验(比如判断是不是整数),避免程序因为无效输入崩溃;
  • 用完Scanner后记得调用close()释放资源,虽然简单程序里不调用也能运行,但养成好习惯没坏处~

内容的提问来源于stack exchange,提问作者Andrew Ryan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:07:35