前言
本篇文章是韩顺平老师课程P135(多重循环控制练习)内容的拓展,也是韩顺平老师笔记系列04有关多重循环内容的详细展开叙述,是第五章的重点,也是难点,多重循环在实际运用中用得也是非常多的。
在这篇文章里,我们将一起实现四个案例,从分析思路出发,每一步如何实现,运行结果如何都会放出来,一步步拆解步骤,让新手小白更好体会编程思想。案例包括统计班级平均分、九九乘法表、金字塔的打印。所有完整代码我会放在每个案例分析的最后。每个案例都十分经典,所有完整代码我都会放在案例最后。
一、统计班级平均分和及格人数
-
需求一:统计3个班成绩情况,每个班有5名同学,求出每个班的平均分和所有班级的平均分,要求学生的成绩从键盘输入。
-
需求二:统计3个班及格人数,每个班有5名同学
-
思路分析:化繁为简
- 要统计三个班的情况,我们先计算一个班(5个学生)的成绩,再把同样的思路扩展到三个班(用一个for循环就可以解决)
- 1.1 创建Scanner对象,接受输入成绩
- 1.2 要得到该班级平均分,先定义一个double sum的变量用来存放一个班五个学生成绩的总和,用sum/5就可以了
- 统计三个班每个班的总分和平均分(实现二重循环)
- 2.1 加入三个班级的循环(外层再加一个班级for循环1-3)
for(int i = 1; i <= 3; i++) { }//i表示班级1-3
for(int j = 1; j <= 5; j++) { }//j表示学生1-5
- 2.1 加入三个班级的循环(外层再加一个班级for循环1-3)
- 统计所有班的平均分
- 3.1 定义一个变量double totalScore 累计三个班所有学生的成绩总分
- 3.1 定义一个变量double totalScore 累计三个班所有学生的成绩总分
- 统计三个班的及格人数
- 4.1 定义变量 int passNum用来记录及格的人数
- 4.2 如果成绩 >= 60,这个人数就+1
- 要统计三个班的情况,我们先计算一个班(5个学生)的成绩,再把同样的思路扩展到三个班(用一个for循环就可以解决)
-
完整代码实现:
import java.util.Scanner;
public class MulForExercise1{
public static void main(String[] args) {
//思路分析:
//1. 要统计三个班的情况,我们先计算一个班(5个学生)的成绩,再把同样的思路扩展到三个班(for)
//1.1 创建Scanner对象,接受输入成绩
//1.2 要得到该班级平均分,先定义一个double sum的变量
// 用来存放一个班五个学生成绩的总和
//2. 统计每个班的总分
//2.1 加入每个班级的循环(外层再加一个班级for循环)
//3. 统计所有班的平均分
//3.1 定义一个变量double totalScore 累计三个班所有学生的成绩总分
//4. 统计三个班的及格人数
//4.1 定义变量 int passNum用来记录及格的人数
//4.2 如果成绩 >= 60,这个人数就+1
//5. 优化
//创建Scanner对象,由于成绩这个变量会在整个代码里反复使用
//放在for循环外面,作为全局变量使用
Scanner myScanner = new Scanner(System.in);
double sum = 0;//一个班五个学生的总分
double totalScore = 0;//三个班所有学生的成绩总分
int passNum = 0;//定义变量 int pass用来记录及格的人数
//2.1 加入三个班级的循环
for