文章目录
- 📑前言
- 一、输入输出
- 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 代码解析
- 导入必要的库:
Random
:用于生成随机数。Scanner
:用于从控制台读取用户输入。
- 定义
Test
类:- 包含了
main
方法,这是Java程序的入口点。
- 包含了
- 初始化:
- 创建一个
Random
对象,用于生成随机数。默认情况下,它的种子是系统时间。 - 创建一个
Scanner
对象,用于从控制台读取用户输入。
- 创建一个
- 生成要猜测的数字:
- 使用
random.nextInt(100)
生成一个0到99(包含0,不包含100)之间的随机整数。
- 使用
- 游戏循环:
- 无限循环(
while(true)
)直到用户猜对数字。 - 提示用户输入一个数字(1-100)。
- 读取用户输入的数字。
- 判断用户输入的数字与要猜测的数字之间的关系:
- 如果用户输入的数字小于要猜测的数字,输出“低了”。
- 如果用户输入的数字大于要猜测的数字,输出“高了”。
- 如果用户输入的数字等于要猜测的数字,输出“猜对了”并退出循环。
- 无限循环(
- 关闭Scanner:
- 在游戏结束后,关闭
Scanner
对象,释放与之关联的资源。
- 在游戏结束后,关闭
🌤️全篇总结
看到这里,你学已经会了如何在Java中进行简单的输入输出操作,包括输出到控制台和从键盘输入。同时,通过一个有趣的猜数字游戏示例,你也了解了如何运用分支语句和循环语句来实现一个小游戏。希望这些基础知识能够帮助你更好地理解Java编程,并为你未来的学习之路打下坚实的基础。继续努力,编程之路将会越发精彩!