Java 嵌套循环的实际应用
作者:互联网
嵌套循环的实际应用
- 因为我的
Ubuntu
出了问题,这几天都在解决问题,现在临时解决了,继续学习。
import java.util.Scanner;
// 嵌套循环应用
// 1. 打印出 99 乘法表
// 2. 统计三个班成绩情况,每个班级有 5 人, 求出各个班级的平均分和所有班级的平均分
// 3. 统计三个班级及格人数 每个班有 5 人
public class MulForExercise {
public static void main (String[] args) {
// 九九乘法表
for (int be_mul_num = 1; be_mul_num <= 9; be_mul_num++) { // 被乘
for (int mul_num = 1; mul_num <= be_mul_num; mul_num++) { // 乘数
System.out.print(mul_num + " X " + be_mul_num + " = " + (mul_num * be_mul_num) + "\t");
}
System.out.println("");
}
// 统计三个班成绩情况,每个班级有 5 人, 求出各个班级的平均分和所有班级的平均分, 统计三个班级及格人数
// 创建 Scanner 对象
Scanner input = new Scanner(System.in);
// 创建变量记录所有班级总分
double class_scoer_sum = 0;
// 创建变量记录班级个数, 班级学员数量, 及格人数
byte class_count = 3, stu_count = 5, pass_count = 0;
// 循环class_count次 分别对应该变量记录的班级数量情况
for (byte class_num = 1; class_num <= class_count; class_num++) {
// 创建变量累加当前班级总分数
double scoer_sum = 0;
// 循环 stu_count次 分别对于每班该变量记录的学员人数情况
for (byte stu_num = 1; stu_num <= stu_count; stu_num++) {
System.out.print(class_num + " 班 " + stu_num + " 号学员成绩: ");
// 获取学生成绩
double scoer = input.nextDouble();
// 判断是否及格(60 分及格)
if (scoer >= 60.0) {
pass_count++;
}
// 累加到当前班级的分数
scoer_sum += scoer;
}
// 打印当前班级平均分
System.out.println(class_num + " 班的平均分: " + (scoer_sum / stu_count));
// 将当前班级总分数累加到所有班级总分里
class_scoer_sum += scoer_sum;
}
// 打印所有班级平均分
System.out.println(class_count + " 个班级的平均分: " + (class_scoer_sum / (class_count * stu_count)));
// 打印所有班级共计的及格人数
System.out.println(class_count + " 个班级共有: " + pass_count + " 人及格");
// 打印空心金字塔
// 目标
System.out.println(" *");
System.out.println(" * *");
System.out.println(" * *");
System.out.println(" * *");
System.out.println("*********");
/*
分析思路:
1. 先打印出 5 行 X 5列 *
2. 再实现每行依次 1 3 5 7 9 个 *
3. 再解决每行开头的空格问题
4. 实现了以上需求 就会得到:
| *
| ***
| *****
| *******
|*********
5. 接下来只要加入判断是不是本行第一位 或 最后一位,和首否为末行 如果是 第一位或最后一位 就打印 * 如果非行首行尾末行则打印 空格
如果是莫行全部打印 *
就会得到:
| *
| * *
| * *
| * *
|*********
*/
int max_line = 5;
for (int cur_line = 1; cur_line <= max_line; cur_line++) { // 处理 5 行循环
for (int start_space = 1; start_space <= (max_line - cur_line); start_space++){ // 处理行首空格
System.out.print(" ");
}
for (int start_star = 1; start_star <= (cur_line * 2 - 1); start_star++) { // 单独处理每一行的每一位 输出 * 还是 空格
// 如果是最后一行就输出 *
if (cur_line == max_line) {
System.out.print("*");
}
// 如果不是这一行的行首或行尾 就输出空格
else if (start_star > 1 && start_star < (cur_line * 2 - 1)) {
System.out.print(" ");
}
// 如果是行首或行尾输出 *
else if (start_star == 1 || start_star == (cur_line * 2 - 1)) {
System.out.print("*");
}
}
// 一行结束 换行
System.out.println("");
}
}
}
标签:count,班级,Java,System,嵌套循环,应用,println,class,out 来源: https://www.cnblogs.com/jwyqn/p/16154914.html