【Java探索之旅】从输入输出到猜数字游戏

慈云数据 2024-05-01 技术支持 82 0
个人头像 🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一、输入输出
    • 1.1 输出到控制台
    • 1.2 从键盘输入
    • 二、猜数字游戏
      • 2.1 所需知识:
      • 2.2 游戏规则:
      • 2.3 完整代码
      • 2.4 代码解析
      • 🌤️全篇总结

        📑前言

        本文将介绍如何在Java中进行控制台的输入输出操作,并通过一个简单的猜数字游戏示例来展示分支语句、循环语句的运用。让我们一起来探索这些有趣的编程技巧吧!

        一、输入输出

        1.1 输出到控制台

        基本语法:

        System.out.println(msg); // 输出一个字符串, 带换行
        System.out.print(msg); // 输出一个字符串, 不带换行
        System.out.printf(format, msg); // 格式化输出
        
        • println 输出的内容自带 \n, print 不带 \n
        • printf 的格式化输出方式和 C 语言的 printf 是基本一致的

          代码示例:

          System.out.println("how are you");
          int a = 88;
          System.out.printf("%d",a);
          

          格式化字符串:

          转换符类型举例
          d十进制整数(“%d”, 100)100
          x十六进制整数(“%x”, 100)64
          o八进制整数(“%o”, 100)144
          f定点浮点数(“%f”, 100f)100.000000
          e指数浮点数(“%e”, 100f)1.000000e+02
          g通用浮点数(“%g”, 100f)100.000
          a十六进制浮点数(“%a”, 100)0x1.9p6
          s字符串(“%s”, 100)100
          c字符(“%c”, ‘1’)1
          b布尔值(“%b”, 100)true
          h散列码(“%h”, 100)64
          %百分号(“%.2f%%”, 2/7f)0.29%

          这里罗列的表格没必要背下来,用到的时候根据需要查一下,多敲几遍基本忘不了 。

          1.2 从键盘输入

          使用 Scanner 读取字符串/整数/浮点数

          import java.util.Scanner; // 需要导入 util 包
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入你的姓名:");
          String name = sc.nextLine();
          System.out.println("请输入你的年龄:");
          int age = sc.nextInt();
          System.out.println("请输入你的工资:");
          float salary = sc.nextFloat();
          System.out.println("你的信息如下:");
          System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
          sc.close(); // 注意, 要记得调用关闭方法
          // 执行结果
          请输入你的姓名:
          张三
          请输入你的年龄:
          18
          请输入你的工资:
          1000
          你的信息如下:
          姓名: 张三
          年龄:18
          工资:1000.0
          

          使用 Scanner 循环读取 N 个数字,并求取其平均

          Scanner sc = new Scanner(System.in);
          int sum = 0;
          int num = 0;
          while (sc.hasNextInt()) {
              int tmp = sc.nextInt();
              sum += tmp;
              num++;
          } 
          System.out.println("sum = " + sum);
          System.out.println("avg = " + sum / num);
          sc.close();
          // 执行结果
          10
          40.0
          50.5
          ^Z
          sum = 150.5
          avg = 30.1
          

          注意事项

          • 当循环输入多个数据的时候, 使用 ctrl + z 来结束输入
          • Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d

            二、猜数字游戏

            2.1 所需知识:

            分支语句,循环语句,输入输出

            2.2 游戏规则:

            系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了”

            2.3 完整代码

            import java.util.Random;
            import java.util.Scanner;;
            class Test {
            	public static void main(String[] args) {
                    Random random = new Random(); // 默认随机种子是系统时间
                    Scanner sc = new Scanner(System.in);
                    
                    int toGuess = random.nextInt(100);
                    
                    // System.out.println("toGuess: " + toGuess);
                    while (true) {
                        System.out.println("请输入要输入的数字: (1-100)");
                        int num = sc.nextInt();
                        
                        if (num  toGuess) {
                        	System.out.println("高了");
                        } else {
                            System.out.println("猜对了");
                            break;
                        }
                    } 
                    sc.close();
                }
            }
            

            2.4 代码解析

            1. 导入必要的库:
              • Random:用于生成随机数。
              • Scanner:用于从控制台读取用户输入。
              • 定义Test类:
                • 包含了main方法,这是Java程序的入口点。
                • 初始化:
                  • 创建一个Random对象,用于生成随机数。默认情况下,它的种子是系统时间。
                  • 创建一个Scanner对象,用于从控制台读取用户输入。
                  • 生成要猜测的数字:
                    • 使用random.nextInt(100)生成一个0到99(包含0,不包含100)之间的随机整数。
                    • 游戏循环:
                      • 无限循环(while(true))直到用户猜对数字。
                      • 提示用户输入一个数字(1-100)。
                      • 读取用户输入的数字。
                      • 判断用户输入的数字与要猜测的数字之间的关系:
                        • 如果用户输入的数字小于要猜测的数字,输出“低了”。
                        • 如果用户输入的数字大于要猜测的数字,输出“高了”。
                        • 如果用户输入的数字等于要猜测的数字,输出“猜对了”并退出循环。
                        • 关闭Scanner:
                          • 在游戏结束后,关闭Scanner对象,释放与之关联的资源。

            🌤️全篇总结

            看到这里,你学已经会了如何在Java中进行简单的输入输出操作,包括输出到控制台和从键盘输入。同时,通过一个有趣的猜数字游戏示例,你也了解了如何运用分支语句和循环语句来实现一个小游戏。希望这些基础知识能够帮助你更好地理解Java编程,并为你未来的学习之路打下坚实的基础。继续努力,编程之路将会越发精彩!

            在这里插入图片描述

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon