ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

05-循环高级

2022-07-12 08:34:15  阅读:146  来源: 互联网

标签:数字 05 Random System 高级 循环 随机数 println out


第一章 循环高级

1.1 无限循环

for、while、do...while都有无限循环的写法。

最为常用的是while格式的。

因为无限循环是不知道循环次数的,所以用while格式的

代码示例:

while(true){
    
}

1.2 跳转控制语句(掌握)

  • 跳转控制语句(break)
    • 跳出循环,结束循环
  • 跳转控制语句(continue)
    • 跳过本次循环,继续下次循环
  • 注意: continue只能在循环中进行使用!

练习:逢7过

需求:

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

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

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

代码示例:

public class LoopDemo4 {
    public static void main(String[] args) {
        //目标:听懂并且自己独立写出来
        //核心:
        //不报数字的条件:
        //个位是7   十位是7  7的倍数
        //三个条件只要满足一个,就不报数字

        //游戏的规则
        //1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 19 20 过...

        //循环的开始条件:1
        //结束条件:100
        for (int i = 1; i <= 100; i++) {
            //i依次表示这个范围之内的每一个数字
            if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {
                System.out.println("过");
                continue;
            }
            System.out.println(i);
        }

    }
}

第二章 随机数

2.1 概述:

​ Random类似Scanner,也是Java提供好的类,内部提供了产生随机数的功能

2.2 使用步骤:

  • 导入包

    import java.util.Random;

  • 创建对象

    Random r = new Random();

  • 产生随机数

    int num = r.nextInt(10);

解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19

扩展点:如果第三步没有指定范围,那么会在int的取值范围中获取一个随机数。

示例代码:

import java.util.Random;
public class RandomDemo {
	public static void main(String[] args) {
		//创建对象
		Random r = new Random();
		//用循环获取10个随机数
		for(int i=0; i<10; i++) {
			//获取随机数
			int number = r.nextInt(10);
			System.out.println("number:" + number);
		}
		//需求:获取一个1-100之间的随机数
		int x = r.nextInt(100) + 1;
		System.out.println(x);
	}
}

Random练习-猜数字小游戏

  • 需求:

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

    当猜错的时候根据不同情况给出相应的提示

    A. 如果猜的数字比真实数字大,提示你猜的数据大了

    B. 如果猜的数字比真实数字小,提示你猜的数据小了

    C. 如果猜的数字与真实数字相等,提示恭喜你猜中了

  • 示例代码:

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

public class RandomTest {
	public static void main(String[] args) {
		//要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
		Random r = new Random();
		int number = r.nextInt(100) + 1;
		
		while(true) {
			//使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
			Scanner sc = new Scanner(System.in);
			
			System.out.println("请输入你要猜的数字:");
			int guessNumber = sc.nextInt();
			
			//比较输入的数字和系统产生的数据,需要使用分支语句。
             //这里使用if..else..if..格式,根据不同情况进行猜测结果显示
			if(guessNumber > number) {
				System.out.println("你猜的数字" + guessNumber + "大了");
			} else if(guessNumber < number) {
				System.out.println("你猜的数字" + guessNumber + "小了");
			} else {
				System.out.println("恭喜你猜中了");
				break;
			}
		}
		
	}
}

猜数字小游戏扩展1:(掌握)

​ 生成随机数的代码不能写在循环里面。

​ 否则,每猜一次,都会产生一个新的随机数。

猜数字小游戏扩展2:(了解)

​ 很多游戏中,都会有保底机制。

​ 假设,在猜数字小游戏中,三次猜不中就触发保底机制

代码示例:

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

public class RandomDemo2 {
    public static void main(String[] args) {
        //分析:
        //1.生成一个1-100之间的随机数字
        Random r = new Random();
        //扩展1:生成随机数的代码,不能写在循环里面,否则每一次都会生成一个新的随机数
        //扩展2:保底机制3次
        
        //定义变量记录猜的次数
        int count = 0;
        int number = r.nextInt(100) + 1;
        System.out.println(number);
        
        //2.使用键盘录入的方式去猜
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要猜的数字");
            int guessNumber = sc.nextInt();
            
            
            //每猜一次,count就++
            count++;
            //判断当前是第几次
            //如果达到了保底,直接提示猜中了
            if(count == 3){
                System.out.println("猜中了");
                break;
            }
           
            
            //3.拿着键盘输入的数字 跟 随机数比较判断
            if (guessNumber > number) {
                System.out.println("大了");
            } else if (guessNumber < number) {
                System.out.println("小了");
            } else {
                System.out.println("猜中了");
                break;
            }
        }

    }
}

标签:数字,05,Random,System,高级,循环,随机数,println,out
来源: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16468678.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有