第九章 循环结构进阶段

一、本章目标

  • 掌握二重循环的使用

  • 掌握二重循环中跳转语句的使用

二、知识点

1 二重循环

1.1 回顾循环

问题:某次程序大赛,S1班有4名学员参加,学员的成绩由用户输入,计算该班参赛学员的平均分 

            261134143736065.png

实现:

 
 
  1. /**

  2. * 计算一个班的平均分

  3. */

  4. public class AvgScore {

  5. public static void main(String args[]){

  6. int[] score = new int[4]; //成绩数组

  7. float sum = 0.0f; //成绩总和

  8. float average = 0.0f; //成绩平均值

  9. //循环输入学员成绩

  10. Scanner input = new Scanner(System.in);

  11. System.out.println("请输入4位学员的成绩");

  12. for(int i = 0; i < score.length; i++){

  13. System.out.print("第"+ (i+1) +"位学员的成绩:");

  14. score[i] = input.nextInt();

  15. sum = sum + score[i];     //成绩累加

  16. }

  17. average = sum / score.length; //计算平均值

  18. System.out.println("参赛学员的平均分是:" + average);

  19. }

  20. }

1.2 为什么使用二重循环

问题:若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分?

            261134157955065.png

分析:

    使用二循环

    外层循环控制班级数目,内层循环控制每个班级学员数目

1.3 什么是二循环

    一个循环体内又包含另一个完整的循环结构 

    261134166231179.png

特点:外层循环变量变化一次,内层循环变量要变化一遍

1.4 使用二重循环

解决上面的问题

 
  
  1. /**
  2. * 计算3个班级的平均分
  3. */
  4. public class AvgScore {
  5. public static void main(String args[]){
  6. int[] score = new int[4]; //成绩数组
  7. int classNum = 3; //班级数目
  8. double sum = 0.0; //成绩总和
  9. double average = 0.0; //平均成绩
  10. //循环输入学员成绩
  11. Scanner input = new Scanner(System.in);
  12. for(int i = 0; i < classNum; i++){
  13. sum = 0.0f; //成绩总和归0
  14. System.out.println("请输入第" + (i+1) + "个班级的成绩");
  15. for(int j = 0; j < score.length; j++){
  16. System.out.print("第" + (j+1) + "个学员的成绩:");
  17. score[j] = input.nextInt();
  18. sum = sum + score[j]; //成绩累加
  19. }
  20. average = sum / score.length; //计算平均分
  21. System.out.println("第" + (i+1) + "个班级参赛学员的平均分是:" + average + "\n");
  22. }
  23. }
  24. }
问题二:打印矩形图案
261134174046007.png

分析:

  • 用二重循环实现

    • 外层循环控制行数

    • 内层循环控制每行的*号数

实现

 
  
  1. /**
  2. * 打印矩形
  3. */
  4. public class Rectangle {
  5. public static void main(String[] args) {
  6. System.out.println("打印矩形");
  7. for(int i = 0; i < 5; i++){
  8. for(int j = 0; j <5; j++){
  9. System.out.print("*");
  10. }
  11. System.out.print("\n"); //换行
  12. }
  13. }
  14. }

1.5 技能训练

训练1:打印直角三角形

问题:打印直角三角形 

  • 从控制台输入直角三角形的高度(行数)

  • 每行 * 的数目依次为1、3、5、7…

261134211546862.png

分析:

    1.外层循环控制行数 

    2.分析每行打印的内容

    3.每一行打印字符*结束后要换行

    4.内层循环的条件: j<=2i-1

实现

 
  
  1. /**
  2. * 输入行数打印直角三角形
  3. */
  4. public class RTriAngle {
  5. public static void main(String[] args) {
  6. int rows = 0; //三角形行数
  7. System.out.print("请输入直角三角形的行数:");
  8. Scanner
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值