目录
[1.1 Scanner类](#1.1 Scanner类)
[1.2 交互尝试:模拟用户登录逻辑](#1.2 交互尝试:模拟用户登录逻辑)
[2.1 使用Random可以生成随机数](#2.1 使用Random可以生成随机数)
[2.2 Random类:编程尝试](#2.2 Random类:编程尝试)
[3.1 常用方法](#3.1 常用方法)
[3.2 代码示例](#3.2 代码示例)
[3.3 Math类------动手尝试](#3.3 Math类——动手尝试)
[4 字符](#4 字符)
[4.1 字符Character](#4.1 字符Character)
[4.2 字符编码](#4.2 字符编码)
[4.3 字符与字符串](#4.3 字符与字符串)
1.什么叫控制台?
控制台 Console
在上个世纪,在图形界面出现之前的、一种基于文字的用户交互界面。
例如,windows仍保留了最古老的命令行界面(DOS)。。展示。
为什么要控制台这么古老的东西?
1 控制台在将来的正式开发中(公司里)不会用到
2 仅用于语法练习,模拟用户交互。
注:我们现在的重点不是界面是否好看
重点是语法、逻辑。
1.1 Scanner类
可以从各种输入源读取数据,包括控制台输入。
它可以解析基本类型和字符串的输入数据
使用方法:
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
int number = scanner.nextInt();
1.2 交互尝试:模拟用户登录逻辑
• 编写一个 Java 程序,模拟一个简单的登录界面。
• 程序首先向用户显示一个提示,要求用户输入用户名和密码。
• 然后,程序将输入的用户名和密码与预设的正确用户名和密码进行比较。
• 如果用户名和密码都正确,则打印一条欢迎消息;否则,打印一条错误消息并允许用户重试,最多重试 3 次。
• 如果 3 次都失败,则显示登录失败的消息。
• 输入说明
用户将被提示输入用户名和密码。
用户有3次输入尝试的机会.
•输出说明
如果用户名和密码正确,打印:"登录成功!欢迎,[用户名]!"
如果用户名或密码错误,打印:"用户名或密码错误,请重试。"
如果用户3次尝试都失败,打印:"登录失败,已达到最大尝试次数。"
• 实现提示
使用Scanner类从控制台读取输入。
设定一个正确的用户名和密码,用于登录验证。
使用循环实现最多3次的输入尝试。
使用条件语句判断用户输入是否正确。
2.随机数Random类
随机数在工程应用里时有用到。
例如,
牌类游戏:洗牌,每次开始游戏之前要把54张牌的顺序随机打乱。
又例如,
抽签功能:从若干个样本中投取几个样本。
(抽奖、摇号、抽签)
Random类是JDK里自带的基本类。
java.util.Random
2.1 使用Random可以生成随机数
Random rand = new Random();
int s = rand.nextInt(1000);
其中,nextInt(1000)表示生成一个0~1000的随机数
生成3个0~1000的随机数。
Random rand = new Random();
for(int i=0; i< 3; i++)
{
int s = rand.nextInt(1000);
System.out.println("生成随机数: " + s);
}
可以发现,每次生成的数是没有规律的(随机的)。
2.2 Random类:编程尝试
**题目描述:**某公司举办年会,共有96名员工参加。现在需要编写一个Java程序模拟抽取特等奖的过程。特等奖只有1名,需要从所有参加年会的员工中随机抽取。
实现提示:
• 使用 java.util.Random 类来生成随机数。
• 假定员工编号从 1 到 96 ,使用随机数来代表被抽中的员工编号。
• 特等奖的中奖编号需要是 1 到 96 之间的随机数。
3.Math类
3.1 常用方法
在 Java 语言里,Math 类提供了一系列进行基本数学运算的静态方法,包括指数、对数、平方根以及三角函数等。这个类位于java.lang包下,因此在使用时不需要导入任何外部包。
• abs :返回参数的绝对值。
• ceil :返回大于或等于参数的最小double值,等于一个整数。
• floor :返回小于或等于参数的最大double值,等于一个整数。
• round :最接近参数的 long 或 int 。
• min :返回两个参数中的较小值。
• max :返回两个参数中的较大值。
• pow :返回第一个参数的第二个参数次幂的值。
• sqrt :返回参数的平方根。
• exp :返回欧拉数 e 的参数次幂的值。
• sin 、 cos 、 tan :分别返回参数的正弦、余弦、正切值。
3.2 代码示例
java
public class MathDemo {
public static void main(String[] args) {
// 计算两个数的最大值
System.out.println("Max of 5 and 10: " + Math.max(5, 10));
// 计算平方根
System.out.println("Square root of 16: " + Math.sqrt(16));
// 计算一个数的次方
System.out.println("2 to the power of 3: " + Math.pow(2, 3));
// 生成一个随机数
System.out.println("A random number: " + Math.random());
}
}
3.3 Math类------动手尝试
**题目描述:**编写一个Java程序,要求用户输入一个圆的半径,然后计算并打印出这个圆的周长和面积。
输入说明
用户输入一个非负实数,表示圆的半径。
输出说明
首行输出圆的周长,保留两位小数。
第二行输出圆的面积,同样保留两位小数。
实现提示
使用Scanner类从控制台读取用户输入。
使用Math.PI获取圆周率π的值。
计算圆的周长公式为:2 * π * r,其中r是圆的半径。
计算圆的面积公式为:π * r^2。
使用String.format()或System.out.printf()来保留两位小数。
4 字符
4.1 字符Character
字符 Character ,代表一个文字或符号
在 Java 语言里,用char类型表示字符
例如,
char c1 = 'A';
char c2 = '9';
char c3 = '邵';
... 中文、日文、韩文、希腊文、... 人类的所有文字和符号
字符变量的写法:
(1) 只能表示一个字符
(2) 用英文单引号括号来
4.2 字符编码
每个字符都对应一个数字,称为字符编码例如,
char c = 'A';
int n = c;
System.out.println("编码为: " + n);
常见的有: 'A'为65 , 'B'为66 ... 'a'为97, 'b'为98...
'0' 为48, '1' 为49 ... ' '为32(空格) ..
地球上所有的文字和符号都有一个编码(Unicode码)
例如,
char c = '邵';
int n = c;
System.out.println("编码为: " + n);
其中,把 0-128 之间的称为 ASCII码 ( 仅英文、数字、英文标点符号等) , 对应键盘上的按键。
思考:
int n = 'C' - 'A'; // 值为多少?
int k = '2' - '0'; // 值为多少?
4.3 字符与字符串
字符串,就是一串字符
- 转换 String => char
String str = "afanihao阿发你好";
char ch = str.charAt(8); // 下标从0开始计数
char[] chs = str.toCharArray();
- 转换 char => String
char[] chs = {'阿', '发', '你', '好'};
String str = new String(chs, 1,3);
str += '的';
在字符串字符中查找字符
例如,
String str = "afanihao阿发你好";
int p = str.indexOf('发');
System.out.println("位置: " + p);