第一章 循环高级

1.1 无限循环

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

最为常用的是while格式的。

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

代码示例:

  1. while(true){
  2. }

1.2 跳转控制语句(掌握)

  • 跳转控制语句(break)

    • 跳出循环,结束循环
  • 跳转控制语句(continue)

    • 跳过本次循环,继续下次循环
  • 注意: continue只能在循环中进行使用!

练习:逢7过

需求:

  1. 朋友聚会的时候可能会玩一个游戏:逢7
  2. 游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过
  3. 需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据

代码示例:

  1. public class LoopDemo4 {
  2. public static void main(String[] args) {
  3. //目标:听懂并且自己独立写出来
  4. //核心:
  5. //不报数字的条件:
  6. //个位是7 十位是7 7的倍数
  7. //三个条件只要满足一个,就不报数字
  8. //游戏的规则
  9. //1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 19 20 过...
  10. //循环的开始条件:1
  11. //结束条件:100
  12. for (int i = 1; i <= 100; i++) {
  13. //i依次表示这个范围之内的每一个数字
  14. if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {
  15. System.out.println("过");
  16. continue;
  17. }
  18. System.out.println(i);
  19. }
  20. }
  21. }

第二章 随机数

2.1 概述:

  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的取值范围中获取一个随机数。

示例代码:

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

Random练习-猜数字小游戏

  • 需求:
    程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
    当猜错的时候根据不同情况给出相应的提示
    A. 如果猜的数字比真实数字大,提示你猜的数据大了
    B. 如果猜的数字比真实数字小,提示你猜的数据小了
    C. 如果猜的数字与真实数字相等,提示恭喜你猜中了

  • 示例代码:

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

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

  1. 生成随机数的代码不能写在循环里面。
  2. 否则,每猜一次,都会产生一个新的随机数。

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

  1. 很多游戏中,都会有保底机制。
  2. 假设,在猜数字小游戏中,三次猜不中就触发保底机制

代码示例:

  1. import java.util.Random;
  2. import java.util.Scanner;
  3. public class RandomDemo2 {
  4. public static void main(String[] args) {
  5. //分析:
  6. //1.生成一个1-100之间的随机数字
  7. Random r = new Random();
  8. //扩展1:生成随机数的代码,不能写在循环里面,否则每一次都会生成一个新的随机数
  9. //扩展2:保底机制3次
  10. //定义变量记录猜的次数
  11. int count = 0;
  12. int number = r.nextInt(100) + 1;
  13. System.out.println(number);
  14. //2.使用键盘录入的方式去猜
  15. Scanner sc = new Scanner(System.in);
  16. while (true) {
  17. System.out.println("请输入你要猜的数字");
  18. int guessNumber = sc.nextInt();
  19. //每猜一次,count就++
  20. count++;
  21. //判断当前是第几次
  22. //如果达到了保底,直接提示猜中了
  23. if(count == 3){
  24. System.out.println("猜中了");
  25. break;
  26. }
  27. //3.拿着键盘输入的数字 跟 随机数比较判断
  28. if (guessNumber > number) {
  29. System.out.println("大了");
  30. } else if (guessNumber < number) {
  31. System.out.println("小了");
  32. } else {
  33. System.out.println("猜中了");
  34. break;
  35. }
  36. }
  37. }
  38. }