Java while 循环

基本语法

语法格式:

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

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

图示:

 

说明:

  • while(循环条件)中循环条件必须是boolean类型。
  • 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
  • for循环和while循环可以相互转换。二者没有性能上的差别。实际开发中,根据具体结构的情况,选择哪个格式更合适、美观。
  • for循环与while循环的区别:初始化条件部分的作用域不同。

应用举例

练习1、输出5行 2023 要加油吖!

    public static void printLine() {
        int n = 5;
        while (n > 0) {
            System.out.println("2023 加油呀!");
            //  n--;
            --n;
        }
    }

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

复制代码
    /**
     * 偶数和偶数和
     */
    public static void doubleNumSum() {
        int n = 50;
        int sum = 0, cnt = 0;
        while (n > 0) {
            if (n % 2 == 0) {
                sum += n;
                cnt++;
            }
            n--;
        }
        System.out.println("0~50 一共有 " + cnt + "  个偶数,它们的和是 " + sum);
    }
复制代码

练习3、猜数字游戏:随机生成一个100以内的数,猜这个随机数是多少?从键盘输入数,如果大了,提示大了;如果小了,提示小了;如果对了,就不再猜了,并统计一共猜了多少次。

提示:生成一个[a,b] 范围的随机数的方式:(int)(Math.random() * (b - a + 1) + a)

复制代码
    /**
     * 猜数字游戏
     */
    public static void guseNum() {
        Scanner scanner = new Scanner(System.in);
        //获取一个随机数
        int random = (int) (Math.random() * 100) + 1;
        System.out.println("猜一下,看你几次可以猜到!!!");
        int cnt = 0;
        while (true) {
            System.out.println("请输入你的答案:");
            int pwd = scanner.nextInt();
            if (pwd > random) {
                System.out.println(pwd + "? 大了...");
                cnt++;
            } else if (pwd < random) {
                System.out.println(pwd + "? 小了...");
                cnt++;
            } else if (pwd == random) {
                cnt++;
                System.out.println(pwd + " , 恭喜你,答对了,一共猜了 " + cnt + " 次,还不错!!");
                break;
                //return;
            }
        }
    }
复制代码

 练习4、 世界最高山峰是珠穆朗玛峰,它的高度是8848.86米,假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

复制代码
    public static void Zmlmf() {
        int l = 884886, cnt = 0;
        double paper = 0.1;//单位:毫米
        while (l > paper) {
            cnt++;
            paper *= 2;
        }
        System.out.println("需要折叠:" + cnt + "次");
        System.out.println("折纸的高度为" + paper / 1000 + "米,超过了珠峰的高度");
    }
复制代码

练习5、从键盘输入整数,输入0结束,统计输入的正数、负数的个数

复制代码
    public static void checkNum() {
        Scanner scanner = new Scanner(System.in);
        int cnt_1 = 0, cnt_2 = 0;
        while (true) {
            int num = scanner.nextInt();
            if (num > 0) {
                cnt_1++;
            } else if (num < 0) {
                cnt_2++;
            } else if (num == 0) {
                System.out.println("正数 " + cnt_1 + "\t 负数 " + cnt_2);
                return;
            }
        }
    }
复制代码
posted @   晓枫的春天  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示