循环录入某学生的5门课程的成绩并计算平均分。如果某分数录入为负,则停止录入并提示录入错误

1.1.训练描述

循环录入某学生的5门课程的成绩并计算平均分。如果某分数录入为负,则停止录入并提示录入错误。

1.2.操作步骤描述

  1. 创建键盘录入对象

  2. 定义int类型的变量sum(总分)和avg(平均分),两个变量的初始值位0,String类型的变量name,表示学员姓名

  3. 定义boolean类型的变量flag(表示该学生的5门成绩是否正确录入,如果有一个为负值,则负值为true,表示录入错误),初始值为false

  4. 利用for循环,录入5个成绩

    (1)判断当前的成绩如果小于0,flag赋值为true,终止for循环

    (2)否则,如果当前录入的成绩>=0,累加求和

  5. 打印结果

​ (1)如果flag为true,打印录入错误

​ (2)否则如果flag为false,打印总分和平均分

import java.util.Scanner;
public class Kehou1{
    
    
	public static void main(String[] args){
    
    
	    //思路一
		// Scanner sc = new Scanner(System.in);
		// int sum = 0;
		// int avg = 0;
		// System.out.println("请输入学生姓名:");
		// String name = sc.next();
		
		// for(int i = 1;i <=5;i++){
    
    
			// System.out.println("请输入"+i+"门成绩:");
			// int num = sc.nextInt();
			// if(num<0){
    
    
				// System.out.println("客官不可以");
				// break;
			// }else{
    
    
				// sum += num;
			// }
		// }
		// if(i == 5){
    
    
			
			// System.out.println(name+"总分为:"+sum);
			// System.out.println(name+"平均分分为:"+sum/5);
		// }
		//思路2
		boolean flag = false;//false表示没有不合法的数据,true表示有不合法的数据
		Scanner sc = new Scanner(System.in);
		int sum = 0;
		int avg = 0;
		for(int i = 1;i <=5;i++){
    
    
			System.out.println("请输入"+i+"门成绩:");
			int num = sc.nextInt();
			//判断num是否合法,如果不合法,则直接修改标志位 true表示有不合法的数据
			if(num<0){
    
    
				flag = true;
				break;
			}
			sum += num;//代码能执行到这里,就证明a是合法的
		}
		//根据flag状态,确定是否要求平均值
		if(flag==true){
    
    
			//说明有不合法存在
			System.out.println("亲,别乱来");
		}else{
    
    
			//说明合法
			System.out.println(name+"平均分分为:"+sum/5);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42073385/article/details/107722153