int clsaaNum=3;//保存班级的数量 int stuNum=4;//保存学生数量 double sum=0;//班级总成绩 double avg=0;//班级平均分 int score =0; Scanner input=new Scanner(System.in);//创建Scanner对象 for(int i=1;i<=3;i++) { //外层循环 sum=0; System.out.println("——请输入第"+i+"个班级的成绩:——"); for(int j=1;j<=stuNum;j++) { //内层循环 System.out.print("请输入第"+j+"个学生的成绩:"); score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩 sum+=score; //个人成绩累加总和 } avg=sum/stuNum; System.out.println("班级平均分是:"+avg); } } }
首先判断输入的内容是整类 如果是整形,向下执行代码
while(!sc.hasNextInt()){//不是整形 执行循环是整形 跳出循环
System.out.println("输入数据有误,请重新输入");//不是整形 给出提示,
sc.next();//继续输入
}
然后判断输入的数据是否在1-100
int clsaaNum=3;//保存班级的数量 int stuNum=4;//保存学生数量 double sum=0;//班级总成绩 double avg=0;//班级平均分 int score =0; Scanner input=new Scanner(System.in);//创建Scanner对象 for(int i=1;i<=3;i++) { //外层循环 sum=0; System.out.println("——请输入第"+i+"个班级的成绩:——"); for(int j=1;j<=stuNum;j++) { //内层循环 System.out.print("请输入第"+j+"个学生的成绩:"); score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩 while(score>100||score<10){ System.out.println("您输入的成绩有误!请重新输入(0~100):"); score=input.nextInt(); } sum+=score; //个人成绩累加总和 } avg=sum/stuNum; System.out.println("班级平均分是:"+avg); } } } /*在你写的代码间加一个while循环判断输入的数据是否是0到100之间,如果不是,则提示输入错误并要求重新输入,直到输入正确才跳出循环。希望对你有帮助*/
int clsaaNum=3;//保存班级的数量
int stuNum=4;//保存学生数量
double sum=0;//班级总成绩
double avg=0;//班级平均分
int score =0;
Scanner input=new Scanner(System.in);//创建Scanner对象
for(int i=1;i<=3;i++) { //外层循环
sum=0;
System.out.println("——请输入第"+i+"个班级的成绩:——");
for(int j=1;j<=stuNum;j++) { //内层循环
System.out.print("请输入第"+j+"个学生的成绩:");
score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩
while(score>100||score<10){
System.out.println("您输入的成绩有误!请重新输入(0~100):");
score=input.nextInt();
}
sum+=score; //个人成绩累加总和
}
avg=sum/stuNum;
System.out.println("班级平均分是:"+avg);
}
}
}
/*在你写的代码间加一个while循环判断输入的数据是否是0到100之间,如果不是,则提示输入错误并要求重新输入,直到输入正确才跳出循环。希望对你有帮助*/
public static void main(String[] arg) {
int clsaaNum=3;//保存班级的数量
int stuNum=4;//保存学生数量
double sum=0;//班级总成绩
double avg=0;//班级平均分
Scanner input=new Scanner(System.in );//创建Scanner对象
for(int i=1;i<=3;i++) { //外层循环
sum=0;//成绩清零
System.out.println("——请输入第"+i+"个班级的成绩:——");
for(int j=1;j<=stuNum;j++) { //内层循环
System.out.print("请输入第"+j+"个学生的成绩:");
int score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩
while(score<0||score>100) {
System.out.print("上一成绩信息无效,请输入正确的成绩:");
score =input.nextInt();
}
sum+=score; //个人成绩累加总和
}
avg=sum/stuNum;
System.out.println("班级平均分是:"+avg);
}
}
代码没错,我能运行啊
for(int j=1;j<=stuNum;j++) { //内层循环 System.out.print("请输入第"+j+"个学生的成绩:"); score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩 if(score < 0 && score > 100){ System.out.print("输入有误,请重新输入:") score =input.nextInt(); } sum+=score; //个人成绩累加总和 } 这样就行了,只是缺少个提示而已,手动输入不存在控制输入范围的,只能客观的给予提醒!
for(int j=1;j<=stuNum;j++) { //内层循环
System.out.print("请输入第"+j+"个学生的成绩:");
score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩
if(score < 0 && score > 100){
System.out.print("输入有误,请重新输入:")
score =input.nextInt();
}
sum+=score; //个人成绩累加总和
}
这样就行了,只是缺少个提示而已,手动输入不存在控制输入范围的,只能客观的给予提醒!
输入时手动输入的啊 不存在控制的问题