Scanner 类
定义:提供了一个可以接收 InputStream 类型的构造方法,这就表示只要是字节输入流的子类都可以通过 Scanner 类进行方便的读取。
public class ScannerTest {
public static void main(String[] args) {
//1.定义扫描器用来扫描键盘的输入
Scanner scanner=new Scanner(System.in);
//2.打印输出一个提示信息
//3.使用扫描器对象获得键盘的输入
int num=scanner . nextInt();
//4.使用结果
System. out. println("你输出的是: "+num) ;
}
}
Random类:
定义:位于java.util.Random包下。是产生随机数的类。
因此它的使用方法有很多:
//无参构造方法使用
Random random = new Random();
int num1 = random.nextInt();//产生任意int类型随机数
int num2 = random.nextInt(20);//产生[0,20)int类型随机数
float num3 = random.nextFloat();//产生[0.0,1.0)float类型随机数
long num4 = random.nextLong();//产生任意long类型随机数
double num5 = random.nextDouble();//产生[0.0,1.0)double类型随机数
boolean num6 = random.nextBoolean();//产生true false 随机布尔值
举例说明
1.生成[0,1.0)区间的小数:double d1 = r.nextDouble();
2.生成[0,5.0)区间的小数:double d2 = r.nextDouble() * 5;
3.生成[1,2.5)区间的小数:double d3 = r.nextDouble() * 1.5 + 1;
4.生成-231到231-1之间的整数:int n = r.nextInt();
5.生成[0,10)区间的整数:
方法一:int n2 = r.nextInt(10);
方法二:int n2 = Math.abs(r.nextInt() % 10);
知道了Scanner 类和Random 类的基本概念我们就可以依靠它们的特性写一个小游戏
猜数字游戏
public class cai {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
Random random=new Random();
//生成0-99 再加1 1-100
int num=random.nextInt(100)+1;
//统计猜的总次数
int count=1;
//使用死循环进行猜数字,直到猜对结束循环
do {
System.out.println("请输入你猜的数字");
int input=scanner.nextInt();
if (input>num){
System.out.println("猜大了!");
}else if (input<num){
System.out.println("猜小了!");
}else {
System.out.println("恭喜你猜对了!");
//猜对了结束循环
break;
}
count++;
}while (true);
System.out.println("本次游戏共猜了"+count+"次");
}
}