ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 嵌套循环的实际应用

2022-04-17 03:31:15  阅读:171  来源: 互联网

标签:count 班级 Java System 嵌套循环 应用 println class out


嵌套循环的实际应用

  • 因为我的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有