5.二重循环

注意

  • 外层控制行数
  • 内层控制列数

定义

  • 一个循环体内又包含另一个完整的循环结构
  • 外层循环变量变化一次,内层循环变量就要变化一次

练习题

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



    --分析:
    1.外层循环控制班级数目
    2.内层循环控制每个班级学员数目

public class linshi {
    public static void main(String[] args) {
        for (int j = 0;j < 3;j++)
       {
           int sum =0;
           System.out.println("请输入第" + (j + 1) + "个班级的成绩");
            for (int i = 0;i< 4;i++)
           {
               System.out.println("第" + (i + 1) + "个学员的成绩:");
               Scanner scanner = new Scanner(System.in);
               int grade = scanner.nextInt();
               sum =sum + grade;
           }
           System.out.println("第" + (j + 1) + "班级参赛学员的平均分是:" + sum/4);
       }
    }
}

  • 用#打印矩形图案



    --分析:
    1.外层循环控制行数
    2.内层循环控制每行的#号数

public class linshi {
    public static void main(String[] args) {
        for (int j = 0; j < 5; j++)
       {
            for (int i = 0; i < 4; i++)
            {
                System.out.print("#\t");
            }
            System.out.println("");
        }
    }
}
  • 用#打印倒直角三角形图案


public class linshi {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入直角三角形的行数:");
        int hangshu = scanner.nextInt();
        for (int j = hangshu; j > 0; j--)//控制的是打印多少行
        {
            for (int i = 0; i < j; i++)//控制的是每行打印多少列
            {
                System.out.print("*\t");
            }
            System.out.println();
        }
    }
}
  • 用#打印正直角三角形图案
    //请输入直角三角形的行数:5
    //#
    //# #
    //# # #
    //# # # #
    //# # # # #
public class linshi {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入直角三角形的行数:");
        int hangshu = scanner.nextInt();
        for (int j = 0;j < hangshu;j++)//控制的是打印多少行
        {
            for (int i = 0; i < j + 1;i++)//控制的是每行打印多少列
            {
                System.out.print("*\t");
            }
            System.out.println();
        }
    }
}
  • 1,3,5,7,9


public class linshi {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入直角三角形的行数:");
        int hangshu = scanner.nextInt();
        for (int j = 0;j < hangshu ;j++)//控制的是打印多少行
        {
           for (int i = 0; i < 2*j + 1;i++)//控制的是每行打印多少列
           {
               System.out.print("*\t");
            }
           System.out.println();
        }
    }
}
  • 打印九九乘法表


public class linshi {
    public static void main(String[] args) {
        for (int j = 0;j < 9;j++)//控制的是打印多少行
        {
           for (int i = 0; i < j + 1;i++)//控制的是每行打印多少列
            {
                System.out.print((i + 1) + "*" + (j + 1) + "=" + ((i + 1)*(j + 1)) + "\t");
           }
            System.out.println();
        }
    }
}

在二重循环中使用continue

  • 若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数


public class linshi {
    public static void main(String[] args) {
        int count = 0;
        for (int j = 0;j < 3;j++)
        {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入第" + (j + 1) + "个班级的成绩");
            int sum = 0;
            int grade = 0;
            for (int i = 0;i < 4;i++)
            {
                System.out.println("第" + (i + 1) + "个学员的成绩:");
                grade = scanner.nextInt();
                sum += grade;
                if (grade <= 85)
                {
                    continue;
                }
                else
                {
                    count++;
                }
            }
            System.out.println("第" + (j + 1) + "班级参赛学员的平均分是" + sum/4);
        }
        System.out.println("成绩85分以上的学员人数有" + count + "人");
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容