多重循环

1.打印图案

经过打印分析:外层循环控制行数,内层循环控制列数


打印三角形:

第一行元素的个数决定了计数器的初始值

如果元素是越来越多,那么计数器变化为++,当计数器为++,

我们必须设置一个上限,也就是判断条件必须小于或者小于等于某个值

如果元素是越来越少,那么计数器变化为--,

我们必须设置一个下限,也就是判断条件必须大于或者大于等于某个值

package com.edu.test1;
/**
 *  使用多重循环打印平行四边形
 * 
 *  经过打印分析:外层循环控制行数,内层循环控制列数
 * 
 *  打印三角形:
 *  第一行元素的个数决定了计数器的初始值
 *          如果元素是越来越多,那么计数器变化为++,当计数器为++,
 *          我们必须设置一个上限,也就是判断条件必须小于或者小于等于某个值
 *          如果元素是越来越少,那么计数器变化为--,
 *          我们必须设置一个下限,也就是判断条件必须大于或者大于等于某个值
 * 
 *
 */
public class Test2 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            // 左半部分 三角形
            for(int j = 5;j >= i;j--) {
                System.out.print("&");
            }
            
            
            
            // 右半部分  矩形
            for(int j = 1;j <= 5;j++) {
                System.out.print("*");
            }
            
            // 换行
            System.out.println();
        }
    }
}

package com.edu.test2;
/**
 *  使用多重循环打印正三角形
 * 
 */
public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {// 外层循环 控制行数
            // 左半部分
            for(int j = 5;j >= i;j--) {
                System.out.print("%");
            }
            
            // 右半部分
            // 右半部分的元素个数 规律为 :行号 * 2 - 1    行号就是i
            for(int j = 1;j <= 2 * i -1;j++) {
                System.out.print("*");
            }
            
            // 换行
            System.out.println();
        }
    }
}

2. 练习

打印99乘法表

package com.edu.test2;
/**
 *  使用双重循环打印99乘法表
 *
 */
public class Test2 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + i * j + "\t");
            }
            System.out.println();
        }
    }
}

打印银行菜单

package com.edu.test2;

import java.util.Scanner;

/**
 *  使用switch和do-while实现银行菜单打印
 * 
 *  对齐:ctrl + a     ctrl + i
 * 
 *
 */
public class Test4 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int choice;
        do {
            System.out.println("============欢迎使用ATM银行系统============");
            System.out.println("1.开户 2.存款 3.取款 4.转账 5.修改密码  6.查询余额 0.退出");
            System.out.println("=========================================");
            choice = input.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("执行开户功能");
                    break; // break存在於switch中 將只跳出switch  不会影响do-while循环
                case 2:
                    System.out.println("执行存款功能");
                    break;
                case 3:
                    System.out.println("执行取款功能");
                    break;
                case 4:
                    System.out.println("执行转账功能");
                    break;
                case 5:
                    System.out.println("执行修改密码");
                    break;
                case 6:
                    System.out.println("执行查询余额功能");
                    break;
                case 0:
                    System.out.println("退出");
                    break;
                default:
                    System.out.println("输入 错误,请重新输入");
                    break;
            }
        } while (choice != 0);


    }
}

统计班级平均分

package com.edu.test2;

import java.util.Scanner;

/**
 *  需求:计算3个班,每个班5名同学的平均成绩。
 *  外层循环控制班级的个数
 *  内层循环控制每个班的人数
 * 
 *
 */
public class Test3 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        for (int i = 1; i <= 3; i++) {
            int sum = 0; // 将统计分数变量写在循环中 表示每次进入循环将上一个班的成绩重新清零
            for (int j = 1; j <= 5; j++) {
                System.out.println("请输入第个" + i +"班第"+ j +"个人的成绩");
                int score =input.nextInt();
                sum += score;
            }
            
            System.out.println("第"+ i +"个班的平均分是:" + sum / 5);
            
        }
        
        
        
    }
}