Java使用循环和if-else计算10门科目成绩最低分的实现方法
最低分计算实现方案
该需求完全可以仅通过循环和if-else语句实现,无需引入其他额外语法。
核心修改点
- 修正最值初始值:原有代码直接将
max、min固定初始化为0,会出现所有成绩都高于0时最低分错误显示为0的问题。我们可以把最大值初始化为int类型的最小值Integer.MIN_VALUE,最小值初始化为int类型的最大值Integer.MAX_VALUE,确保第一次录入的成绩就能正确覆盖初始值。 - 新增最低分判断逻辑:在循环录入成绩的逻辑中,增加if判断,只要当前录入的成绩低于已记录的最低分,就更新最低分值。
修改后完整代码
import java.util.Scanner; class Example{ public static void main(String args[]){ Scanner input=new Scanner(System.in); int tot=0; // 修正最值初始值 int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; double avg=0; for(int i =1;i<=10;i++){ System.out.print("Input subject "+i+" marks : "); int marks=input.nextInt(); tot+=marks; // 更新最高分 if(marks>max) max=marks; // 新增最低分更新逻辑 if(marks<min) min=marks; } // 除以10.0避免整数除法丢失精度,如需整数平均分可改回tot/10 avg=tot/10.0; System.out.println("总分:" + tot); System.out.println("最高分:" + max); System.out.println("最低分:" + min); System.out.println("平均分:" + avg); } }
内容的提问来源于stack exchange,提问作者sha sha
相关产品推荐
相关产品推荐

