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

2024-04-12 23:04

本文主要是介绍【Java探索之旅】从输入输出到猜数字游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : 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 if (num > toGuess) {System.out.println("高了");} else {System.out.println("猜对了");break;}} sc.close();}
}

2.4 代码解析

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

🌤️全篇总结

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

在这里插入图片描述

这篇关于【Java探索之旅】从输入输出到猜数字游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/898485

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听