Java do-while循环

基本语法

语法格式:

①初始化部分;
do{
    ③循环体部分
    ④迭代部分
}while(②循环条件部分);

执行过程:①-③-④-②-③-④-②-③-④-...-②

图示:

说明:

  • 结尾while(循环条件)中循环条件必须是boolean类型
  • do{}while();最后有一个分号
  • do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
  • 循环的三个结构for、while、do-while三者是可以相互转换的。

应用举例

练习1、遍历1-100的偶数,并计算所有偶数的和、偶数的个数(累加的思想)

    static void doubleSum() {
        int sum = 0, cnt = 0, num = 1;
        do {
            if (num % 2 == 0) {
                sum += num;//求和
                cnt++;//计数
            }
            num += 1;//循环条件+1
        } while (num < 100);
        System.out.println("和 " + sum + " ,cnt " + cnt);
    }

练习2、体会do-while至少会执行一次循环体

public static void main(String[] args) {
        //while循环:
        int num1 = 10;
        while(num1 > 10){
            System.out.println("hello:while");
            num1--;
        }

        //do-while循环:
        int num2 = 10;
        do{
            System.out.println("hello:do-while");
            num2--;
        }while(num2 > 10);

    }

练习3、ATM取款 

声明变量balance并初始化为0,用以表示银行账户的余额,下面通过ATM机程序实现存款,取款等功能。.

=========ATM========
   1、存款
   2、取款
   3、显示余额
   4、退出
请选择(1-4):
public static void main(String[] args) {
        //初始化
        double balance = 0.0;//余额
        Scanner scanner = new Scanner(System.in);
        boolean isFlag = true;//循环条件

        do {
            System.out.println("==========ATM==========");
            System.out.println("\t1、存款");
            System.out.println("\t2、取款");
            System.out.println("\t3、显示金额");
            System.out.println("请选择(1~4)");

            int selection = scanner.nextByte();

            switch (selection) {
                case 1:
                    System.out.println("存多少?");
                    double addMoney = scanner.nextDouble();
                    if (addMoney > 0) {
                        balance += addMoney;
                    }
                    break;
                case 2:
                    System.out.println("取多少?");
                    double minusMoney = scanner.nextDouble();
                    if (minusMoney > 0 && balance >= minusMoney) {
                        balance -= minusMoney;
                    } else {
                        System.out.println("输入非法或金额不足!!!");
                    }
                    break;
                case 3:
                    System.out.println("余额:" + balance);
                    break;
                case 4:
                    System.out.println("欢迎下次进入此系统。^_^");
                    isFlag = false;
                    break;
                default:
                    System.out.println("请重新选择!");
                    break;

            }
        } while (isFlag);
        //释放资源
        scanner.close();
    }
posted @ 2023-03-19 07:49  晓枫的春天  阅读(399)  评论(0编辑  收藏  举报