8.Java循环高级综合练习-无限循环和跳转控制语句,逢七过,平方根,判断是否为质数,猜数字小游戏

news2024/9/21 20:45:43

文章目录

  • 前言
  • 一、无限循环
    • 1.这三种循环中哪一种无限循环是最常用的呢?
    • 2.注意事项:
  • 二、跳转控制语句
  • 三、逢七过
  • 四、平方根
  • 五、判断该整数是否为一个质数
  • 六、猜数字小游戏
    • 保底机制
  • 总结


前言

一、无限循环

在这里插入图片描述

1.这三种循环中哪一种无限循环是最常用的呢?

当然是右上角的while循环啦~

2.注意事项:

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

二、跳转控制语句

continue 跳过本次循环,继续执行下次循环
break 结束整个循环
在这里插入图片描述

三、逢七过

在这里插入图片描述

public class test1 {
    /*游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说:过
    需求:
    使用应用程序在控制台打印出1-100之间满足逢七过规则的数据

    分析:
    个位7 十位7 7倍数
    1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 19 20 过...
    69 过 过 过 过 过 ....80



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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、平方根

在这里插入图片描述

import java.util.Scanner;

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

        分析:
        平方根相当于数学中的开根号  16的平方根4
        
        10
        1*1=1<10
        2*2=4<10
        3*3=9<10
        4*4=16>10
        推断:10的平方根在3-4之间
        
        在代码当中
        从1开始循环,拿着数字的平方根和原来的数字进行比较
        如果小于,那么继续往后判断
        如果等于,那么当前数字就是平方根
        如果大于,那么前一个数字就是平方根的整数部分
         */
        
        //1.键盘录入一个整数
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入一个整数:\n");
        int number=sc.nextInt();
        //2.从1开始循环判断
        //开始1
        //结束number
        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;

            }
            
        }
    }
}

在这里插入图片描述
在这里插入图片描述

五、判断该整数是否为一个质数

在这里插入图片描述

import java.util.Scanner;

public class test3 {
    public static void main(String[] args) {
        /*需求:键盘录入一个正整数x,判断整数是否为一个质数

        质数:
        如果一个整数只能被1和他本身整除,那么这个数就是质数,否则这个数就是合数
        7=7*1  质数
        8=8*1 2 *4 合数
         */

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

        //3.定义一个变量表示标记
        //标记着number是否为一个质数
        //true 是一个质数
        //false 不是一个质数

        boolean flag=true;//表示在一开始number是一个质数

        //2.判断
        //写一个循环,从2开始判断,一直判断到number-1为止
        //看这个范围之内,有没有数字可以被number整除



        for(int i=2;i<number;i++){
            //i依次表示这个范围之内的每一个数字
            //看number是否被i整除就可以了
            if(number%i==0){
                flag=false;
            }
                //System.out.println(number+"不是一个质数");
                break;
        }
            //只有当这个循环结束了,表示这个范围之内所有数字都判断完了
            //此时才能判定number是一个质数

        if(flag){
            System.out.println(number+"是一个质数");
        }else{
            System.out.println(number+"不是一个质数");
        }
    }
}

在这里插入图片描述
在这里插入图片描述
优化思路:

public class test4 {
    public static void main(String[] args) {
        //100000
        //2-99999
        //循环的次数:将近10万次

        /*简化的思路
        81
        1*81
        3*27
        9*9

        以81的平方根9为中心
        而且假设a*b=81
        那么a和b中,其中有一个必定是小于等于9的
        另一个是大于9的

        假设,都是大于9---9.1*9.1>81
        假设,都是小于9---8.9*8.9<81
        其中一个数字一定是小于等于平方根
        另外一个数字一定是大于等于平方根


         */
        int number=100;
        //如果在这个范围内,所有的数字都不能被number整除
        //那么number一定是个质数
        /*for (int i = 2; i <=number的平方根 ; i++) {

        }*/

    }
}

六、猜数字小游戏

在这里插入图片描述
首先我们要来学习一下随机数的生成:
在这里插入图片描述
在这里插入图片描述

import java.util.Random;

public class test5 {
    public static void main(String[] args) {
        /*先获取一个随机数
        范围 0-10*/

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

        //3.生成随机数
        //判断技巧:
        //在小括号中,书写的是生成随机数的范围
        //这个范围一定是从0开始的
        //到这个数-1结束
        //口诀:包头不包尾,包左不包右
        for (int i = 0; i < 100; i++) {
            int number=r.nextInt(10);//0-9
            System.out.println(number);

        }

    }
}

可以发现随机数生成的数值在0-9之间
在这里插入图片描述

import java.util.Random;

public class test6 {
    public static void main(String[] args) {
        //需求:
        //随机数范围:1-100
        /*
        //创建对象
        Random r=new Random();
        //生成随机数
        int number= r.nextInt(101);//0~100
        System.out.println(number);

         */

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

        /*
        Random r=new Random();
        int number= r.nextInt(9)+7;//7~15
                       //0~8   +7
        System.out.println(number);

         */

        //生成1-100随机数
        Random r=new Random();
        int number= r.nextInt(100)+1;   //0~99  +1  =  1~100
        System.out.println(number);



    }
}

猜数字最终代码:

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("请输入你要猜的数字:\n");
            int guessnumber=sc.nextInt();

            if (guessnumber > number) {
                System.out.println("猜大了");
            } else if (guessnumber < number) {
                System.out.println("猜小了");
            } else {
                System.out.println("猜中了");
                break;
            }
        }


    }
}

在这里插入图片描述
在这里插入图片描述
注意事项:
生成随机数的代码
int number= r.nextInt(100)+1;
不能写在循环的里面的,否则每一次都会生成一个新的随机数

保底机制

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);

        //计数器:用来统计当前猜了多少次
        int count=0;


        //3.判断两个数字给出不同的提示
        //猜的数字大了,提示大了
        //猜的数字小了,提示小了
        //猜的数字一样,提示猜中了
        while(true) {
            System.out.println("请输入你要猜的数字:\n");
            int guessnumber=sc.nextInt();

            count++;
           if(count==3){
               System.out.println("猜中了\n");
               break;

           }

            if (guessnumber > number) {
                System.out.println("猜大了");
            } else if (guessnumber < number) {
                System.out.println("猜小了");
            } else {
                System.out.println("猜中了");
                break;
            }
        }

      /*  注意事项:
        1.生成随机数的代码
        int number= r.nextInt(100)+1;
        不能写在循环的里面的,否则每一次都会生成一个新的随机数
        2.抽奖机制
        用点券去抽水晶
        保底 360次
        */



    }
}

在这里插入图片描述


总结

今天的内容你是否有所收获呢友友们🥰如果有写的不对的地方,欢迎大家帮我指正.最后,希望友友们点赞收藏一下博客关注后续的Java学习内容哦~😘💕💕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【若依】若依字典管理页面中列表按钮功能的实现

0. 功能实现描述 1. 代码实现 ScStfController.java /*** 查询员工证书* param stfId* param modelMap* return*/ RequiresPermissions("sc:stf:cert") GetMapping("/cert/{stfId}") public String detail(PathVariable("stfId") Long stfId, …

结构型模式-组合模式

1.概述 对于这个图片肯定会非常熟悉&#xff0c;上图我们可以看做是一个文件系统&#xff0c;对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树&#xff0c;当我们找到某个叶子节点后&#xff0c;就可以对叶子节点进行相关的操作。可以将这颗树…

谷粒学院——Day19【项目部署】

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

Java中的hashCode,真的很容易弄懂

写这篇文章是因为在看hashMap源码时遇到有什么hashcode值&#xff0c;然后就去查&#xff0c;脑袋里面是有印象的&#xff0c;不就是在Object中有equals和hashcode方法嘛&#xff0c;这在学java基础的时候就遇到过&#xff0c;不过那时候无所谓&#xff0c;囫囵吞枣&#xff0c…

三、python基础语法进阶篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 一、文件操作 一、 文件的读取 1. 打开文件open() 2. 读取文件10个字节read(10) 3. 读取文件全部信息read() 4. 读取文件readLines() 5. 读取文件readLine() 6. for循环读取…

Nginx与LUA(7)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客。值此新春佳节&#xff0c;我给您拜年啦&#xff5e;祝您在新的一年中所求皆所愿&#xff0c;所行皆坦途&#xff0c;展宏“兔”&#xff0c;有钱“兔”&#xff0c;多喜乐&#xff0c;常安宁&#xff01;软件开发中&…

使用小程序+网页简易实现多客户端实时弹幕

此文主要通过小程序网页模拟多客户端通过轮询、WebSockets、订阅推送等方式简易实现实时弹幕。 实现流程1、服务端1.1、创建项目2.2、接口定义2、客户端2.1、小程序端2.2、web端3、实现方式3.1、轮询3.2、WebSocket3.3、订阅推送实现流程 1、服务端 1.1、创建项目 打开Visual…

【docker概念和实践 5】容器命令和案例(1)

一、说明 docker的四个要素是&#xff1a;本地的Docker-engine、网上&#xff08;本地&#xff09;的仓库、镜像images、容器&#xff1b;初学者必须了解这是个概念的关系。但是&#xff0c;真正重要的概念是容器&#xff0c;因为&#xff0c;只有掌握了容器&#xff0c;才能具…

SpringBoot整合SSM

添加pom依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope></dependency><dependency><groupId>org.mybati…

macOS Monterey 12.6.3 (21G419) Boot ISO 原版可引导镜像

macOS Monterey 12.6&#xff0c;皆为安全更新&#xff0c;不再赘述。 macOS Monterey 12.6&#xff0c;发布于 2022 年 9 月 12 日&#xff08;北京时间今日凌晨&#xff09;&#xff0c;本次为安全更新。 今日&#xff08;2022-07-21&#xff09;凌晨&#xff0c;Apple 终于…

【Hadoop】HDFS高可用与高扩展原理分析(HA架构与Federation机制)

文章目录一、HDFS的高可用性&#xff08;HA架构&#xff09;二、HDFS的高扩展性&#xff08;Federation机制&#xff09;三、HA架构 Federation机制一、HDFS的高可用性&#xff08;HA架构&#xff09; 为保证HDFS的高可用性&#xff0c;即当NameNode节点机器出现故障而导致宕机…

【操作系统】—— Windows常用快捷键(带你快速了解)

&#x1f4dc; “作者 久绊A” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴。 &#x1f341; 操作系统【带你快速了解】对于电脑来说&#xff0c;如果说…

【JavaEE】定时器的简单实现

目录 定时器 实现定时器 描述任务 保存任务 扫描任务 执行任务 定时器 在实现定时器之前&#xff0c;先来简单的了解一下什么是定时器。 定时器是软件开发中一个重要的组件。比如到了什么时候&#xff0c;干一件什么样的事情&#xff1b;多少秒之后干什么。本篇文章介绍…

活动星投票最美养生师展网络评选微信的投票方式线上免费投票

“最美养生师”网络评选投票_用户同什么方法挑选投票小程序_最好的投票小程序用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&…

Hive函数大全–完整版(三)

官网参考地址&#xff1a; 官网UDF - Apache Hive 1. 基本数据类型 2. 基础运算符与函数 SQL结果A IS NULL 空A IS NOT NULL 非空 A LIKE B 模糊匹配A RLIKE B 正则表达式匹配A REGEXP B 正则表达式匹配 3. 类型转换 cast(expr as <type>)…

园区网典型组网架构及案例实践

什么是园区网园区网络是限定区域内&#xff0c;连接人与物的局域网络&#xff1b;园区网络通常只有一个管理主体&#xff1b;如果有多个管理主体&#xff0c;通常被认为为多个园区网络。园区网络典型架构小型园区网络典型架构小型园区网络应用于接入用户数量较少的场景&#xf…

SpringBoot 统一功能处理

SpringBoot 统一功能处理前言一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.3.1 准备工作1.3.2 自定义拦截器1.3.3 将自定义拦截器加入到系统配置1.4 拦截器实现原理1.4.1 实现原理源码分析1.4.2 拦截器小结1.5 扩展&am…

CBC模式的3DES加解密(课程设计报告)

目录一、实验内容二、实验原理2.1 DES加解密原理2.1.1 DES加解密的基本原理2.1.2 DES加解密的关键步骤2.2 3DES加解密原理2.3 分组密码CBC加解密模式原理2.4 填充原理三、实验过程3.1 变量说明3.1.1 主函数变量说明3.1.2 其他重要变量说明3.2 函数功能说明3.2.1主函数说明3.2.2…

并行训练方法-单机多卡

一、简单方便的 nn.DataParallel DataParallel 可以帮助我们&#xff08;使用单进程控&#xff09;将模型和数据加载到多个 GPU 中&#xff0c;控制数据在 GPU 之间的流动&#xff0c;协同不同 GPU 上的模型进行并行训练&#xff08;细粒度的方法有 scatter&#xff0c;gather …

学习记录670@项目管理之变更管理

变更的分类 按变更性质分为重大变更、重要变更和一般变更&#xff0c;可通过不同审批权限控制。按变更的迫切性分为紧急变更和非紧急变更&#xff0c;可通过不同的变更处理流程进行控制。按变更所发生的领域和阶段&#xff0c;可分为进度变更、成本变更、质量变更、设计变更、…