[从0开始学Java|第五天]Java循环高级综合练习

无限循环和跳转控制语句

无限循环

什么是无限循环?

**无限循环:**循环一直停不下来

无限循环的格式

for (;;) {

System.out.println("学习");

}

java 复制代码
public class InfiniteloopDemo1 {
    public static void main(String[] args) {
        //for格式的无限循环
        for(;;){
            System.out.println("学习");
        }
    }
}

while (true) {

System.out.println("学习");

}

java 复制代码
public class InfiniteloopDemo1 {
    public static void main(String[] args) {
        //while格式的无限循环
        while (true){
            System.out.println("学习");
        }
    }
}

do {

System.out.println("学习");

} while (true);


注意事项:

无限循环的下面不能再写其他代码了,因为循环永远停不下来,那么下面的代码永远执行不到

跳转控制语句

什么是跳转控制语句?

在循环的过程中,跳到其他语句上执行.

练习1:小老虎吃包子(continue)

**需求:**小老虎吃包子,吃到第3个包子就跳过,继续吃后面的包子.

(源代码)

java 复制代码
package skiploop;

public class SkipLoppDemo2 {
    public static void main(String[] args) {
        // 需求:小老虎在吃包子,吃了第3个包子,就跳过,继续吃后面的包子

        //1.跳过某一次循环
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                //结束本次循环,继续下次循环
                continue;
            }
            System.out.println("小老虎在吃第" + i + "个包子");
        }
    }
}

(运行结果截图)

练习2:小老虎吃包子(break)

**需求:**小老虎吃包子,吃到第3个包子就吃饱了,后面的包子就不吃了.

(源代码)

java 复制代码
package skiploop;

public class SkipLoppDemo1 {
    public static void main(String[] args) {
        // 需求:小老虎在吃包子,吃了第3个包子就跳过,继续吃后面的包子.

        //2.结束整个循环
        for (int i = 1; i <= 5; i++) {
            System.out.println("小老虎在吃第" + i + "个包子");
            if (i == 3) {
                //结束整个循环
                break;
            }
        }

    }

(运行结果截图)

总结

1.continue:跳过本次循环,继续执行下次循环.

2.break:结束整个循环

练习

案例1:逢七过

朋友聚会的时候可能会玩一个游戏:逢7过

**游戏规则:**从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说:过

**需求:**使用程序在控制台打印出1-100之间的满足逢七必过规则的数据

(源代码)

java 复制代码
package test;

public class Test1 {
    public static void main(String[] args) {
        //1.得到1~100之间的一个数字
        for(int i = 1 ; i <= 100 ; i++){
            //判断每一个数字,如果符合规则,就打印过,如果不符合规则,就打印真实的数字
            if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0){
                System.out.println("过");
                continue;
            }
            System.out.println(i);
        }
    }
}

(运行结果截图)

案例2:平方根

**需求:**键盘录入一个大于等于2的整数x,计算并返回x的平方根.结果只保留整数部分,小数部分将被舍去.

**分析:**在代码中,从1开始循环,拿着数字的平方根跟原来的数字进行比较;如果小于,那么继续往后判断;如果相等,那么当前数字就是平方根;如果大于,那么前一个数字就是平方根的整数部分

(源代码)

java 复制代码
package test;

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        /*需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根.
        结果只保留整数部分,小数部分将被舍去.*/

        //1.键盘录入一个大于等于2的整数x
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个大于等于2的整数:");
        int number = sc.nextInt();
        //2.从1开始循环判断
        for (int i = 1; i <= number; i++) {
            //用 i * i 再跟number进行比较
            if (i * i == number){
                System.out.println(i + "就是" + number + "的平方根");
                break;
            }else if (i * i > number){
                System.out.println((i - 1) + "就是" + number + "的平方根");
                break;
            }
        }
    }
}

(运行结果截图)

案例3:求质数

**需求:**键盘录入一个正整数x,判断该整数是否为一个质数.

(源代码)

java 复制代码
package test;

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        //需求:键盘录入一个正整数x,判断该整数是否为一个质数.
        //质数:只能被1和它本身整除的数

        //分析:
        //1.键盘录入一个正整数x
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个正整数x:");
        int number = sc.nextInt();

        //2.定义一个变量,用来标记number是否为一个质数
        //true:是一个质数
        //false:不是一个质数
        boolean flag = true;

        //3.判断该整数是否为一个质数
        //写一个循环,从2开始判断,一直判断到number-1为止
        //这个范围内,有没有数字可以被number整除
        for (int i = 2; i < number; i++) {
            //i依次表示这个范围内的每一个数字
            if (number % i == 0) {
                flag = false;
                break;
            }
        }
        /*只有当这个循环结束了,表示这个范围内的每一个数字都判断完毕了,
        此时才能断定number是一个质数*/
        if (flag) {
            System.out.println(number + "是一个质数");
        } else {
            System.out.println(number + "不是一个质数");
        }
    }
}

(运行结果截图)

优化算法

java 复制代码
package test;

public class Test4 {
    public static void main(String[] args) {
        //100000
        
        /*以81的平方根9为中心,而且假设 a * b = 81
        那么a和b中,其中有一个必定是小于等于9的,另一个是大于9的*/
        
        int number = 100;
        //如果在这个范围之内,所有的数字都不能被number整除,那么number一定是个质数
        for (int i = 2; i <= number的平方根; i++) {
        }
    }
}

案例4:猜数字小游戏

**需求:**程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?

使用步骤

1.导包 --- Random这个类在哪

import java.util.Random;

导包的动作必须出现在类定义的上边.

2.创建对象 --- 表示我要开始用Random这个类了

Random r = new Random ();

上面这个格式里面,只有r是变量名,可以变,其他的都不允许变.

3.生成随机数 --- 真正开始干活了

int number = r.nextInt(随机数的范围);

上面这个格式里面,只有number是变量名,可以变,其他的都不允许变.

练习1:获取一个随机数

**需求:**生成10次随机数,范围为0 ~ 10

(源代码)

java 复制代码
package test;

//1.导包
import java.util.Random;

public class Test5 {
    public static void main(String[] args) {
        //先获取一个随机数,范围为0~10

        //2.创建对象
        Random r = new Random();

        //3.获取随机数
        //口诀:包头不包尾,包左不包右
        for (int i = 0; i < 10; i++) {
            int number = r.nextInt(11);//0~10
            System.out.println(number);
        }
    }
}

(运行结果截图)

练习2:获取一个随机数

**需求:**生成一个随机数,随机数范围:1 ~ 100

(源代码)

java 复制代码
package test;

import java.util.Random;

public class Test6 {
    public static void main(String[] args) {
        //需求:随机数范围:1 ~ 100

        /*秘诀:
        用来生成任意数到任意数之间的随机数  如7~15
        1.让这个范围头尾都减去一个值,让这个范围从0开始  -7  0~8
        2.尾巴+1  8 + 1 = 9
        3.最终的结果,再加上第一步减去的值
        Random r = new Random();
        int num = r.nextInt(9) + 7;//7~15
        System.out.println(num);*/

        Random random = new Random();
        int number = random.nextInt(100) + 1;//1~100
        System.out.println(number);
    }
}

(运行结果截图)

代码实现

(源代码)

java 复制代码
package test;

import java.util.Random;
import java.util.Scanner;

public class Test7 {
    public static void main(String[] args) {
        //需求:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?

        //分析:
        //1.生成一个1-100之间的随机数字
        Random r = new Random();
        int number = r.nextInt(100) + 1;

        //2.猜这个数字是多少
        Scanner sc = new Scanner(System.in);
        //3.判断两个数字并给出不同的提示
        while (true) {
            System.out.println("请输入你要猜的数字(1-100):");
            int guessNumber = sc.nextInt();
            if (guessNumber > number) {
                System.out.println("你猜的数字" + guessNumber + "大了");
            } else if (guessNumber < number) {
                System.out.println("你猜的数字" + guessNumber + "小了");
            } else {
                System.out.println("恭喜你,猜中了");
                break;
            }
        }
    }
}

(运行结果截图)

注意事项:

生成随机数的代码 int number = r.nextInt(100) + 1; 不能写在循环的里面的,否则每一次都会产生一个新的随机数.

相关推荐
Scott9999HH2 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔2 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社3 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海3 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖4 小时前
JDK 26 新特性详解
java·开发语言
马优晨5 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区6 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大7 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai7 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说7 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json