1.1.训练描述
循环录入某学生的5门课程的成绩并计算平均分。如果某分数录入为负,则停止录入并提示录入错误。
1.2.操作步骤描述
-
创建键盘录入对象
-
定义int类型的变量sum(总分)和avg(平均分),两个变量的初始值位0,String类型的变量name,表示学员姓名
-
定义boolean类型的变量flag(表示该学生的5门成绩是否正确录入,如果有一个为负值,则负值为true,表示录入错误),初始值为false
-
利用for循环,录入5个成绩
(1)判断当前的成绩如果小于0,flag赋值为true,终止for循环
(2)否则,如果当前录入的成绩>=0,累加求和
-
打印结果
(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);
}
}
}