内容纲要
133讲难点重点,多重循环控制
- 双层for循环
多重循环练习题!!!
import java.util.Scanner;
public class MultiForExercise{
public static void main(String[] args){
//题目:统计3个班成绩情况,每个班有5名同学,求出各个班的平均分和所有班级的平均分【学生的成绩从键盘输入】
//统计三个班及格人数,每个班有5名同学。
//思路分析:
//1.统计一个班的成绩情况:用 for 循环
//1.1 用 double 定义的变量来接收键盘输入学生的成绩;
//1.2 定义 int i = 5 为每个班学生人数;通过 for 循环来控制连续输入
//====
//2.统计3个班的成绩外层嵌套一个for循环(注意外层for嵌套位置)
//3.统计3个班有几个及格人数 int num 用if分支语句
Scanner myScanner = new Scanner(System.in);
double totalClassScore = 0;//初始化每个班的总成绩
double totalStudentScore = 0;//初始化所有学生的总成绩
int j = 1;//初始化变量j,代表班级序号。i <= 3为循环3次接收3个班的输入成绩
int num = 0;//用于接收及格的人数。
for(;j <= 3;j++){
for(int i = 1; i <= 5 ; i++){ //初始化变量i,代表某个班第i个学生
System.out.println("请输入第1个班第" + i + "位同学的成绩:");
Double score = myScanner.nextDouble(); //定义score来接收学生的成绩
System.out.println("第i班的" + i + "位同学的成绩是: " + score);
if(score >= 60){
num++; //接收及格的人数
}
totalClassScore += score;
}
System.out.println("第 " + i + " 班的总成绩是: " + totalClassScore);//求出一个班的总成绩
System.out.println("第 " + i + " 班的平均成绩是: " + (totalClassScore/5));
totalStudentScore += totalClassScore;//学生总分数
}//
System.out.println("学生总平均分" + totalStudentScore/15);
System.out.println("及格人数:" + num);
}
}
//这个例子真刺激。
通过这次自己仿代码:
要注意以下几点问题:
1._内层循环注意 MARKDOWN_HASHf5cdadd1cc7a85b5a9fd3b3a643bd7d0MARKDOWNHASH
第一个分号前要让 i 初始化,
否则外层循环的时候 i 会很大而导致内层不循环。
2. 注意score要定义在在内层循环 ,每次外层循环完成后销毁再赋值给 totalClassScore 否则总分会连续叠加出问题。