Scanner 类(获取用户输入)
Scanner 类的功能:可以实现键盘输入数据,到程序当中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| package com.tipdm.demo01;
import java.util.Scanner;
public class demo1 { public static void main(String[] args) { Scanner scr = new Scanner(System.in); int num = scr.nextInt(); System.out.println(num);
String str = scr.next(); System.out.println(str); }
}
|
1 2 3 4 5 6
| 520 520 Nihao Nihao
进程已结束,退出代码0
|
练习:键盘输入两个数字并且求和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package com.tipdm.demo01;
import java.util.Scanner;
public class demo2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入第一个数字:"); int a = sc.nextInt(); System.out.print("请输入第二个数字:"); int b = sc.nextInt(); System.out.println(a+b); } }
|
1 2 3 4 5
| 请输入第一个数字:4 请输入第二个数字:2 6
进程已结束,退出代码0
|
练习:键盘输入三个int数字,然后求出其中的最大值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package com.tipdm.demo01;
import java.util.Scanner;
public class demo3 { public static void main(String[] args) { Scanner str = new Scanner(System.in); System.out.print("请输入第一个数字:"); int a = str.nextInt(); System.out.print("请输入第二个数字:"); int b = str.nextInt(); System.out.print("请输入第三个数字:"); int c = str.nextInt(); int max = a > b ? a : b; max = max > c ? max : c; System.out.println("最大值为:" + max); } }
|
1 2 3 4 5 6
| 请输入第一个数字:6 请输入第二个数字:8 请输入第三个数字:2 最大值为:8
进程已结束,退出代码0
|
匿名对象
创建对象的标准格式:
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新的对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就使用匿名对象。
创建匿名对象
1 2 3 4 5 6 7 8 9 10
| package com.tipdm.demo01;
public class Person { String name;
public void showName(){ System.out.println(this.name); } }
|
调用匿名对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.tipdm.demo01;
public class demo4 { public static void main(String[] args) { Person one = new Person(); one.showName(); one.name = "赵丽颖"; one.showName();
new Person().name = "赵又廷"; new Person().showName(); } }
|
1 2 3 4 5
| null 赵丽颖 null
进程已结束,退出代码0
|
匿名对象的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| package com.tipdm.demo01;
import java.util.Scanner;
public class demo5 { public static void main(String[] args) {
Scanner sc = methodReturn(); int num = sc.nextInt(); System.out.println("输入的是:" + num); }
public static void methodParam(Scanner sc){ int num1 = sc.nextInt(); System.out.println("输入的是:" + num1); }
public static Scanner methodReturn(){
return new Scanner(System.in); } }
|
1 2 3 4
| 123 输入的是:123
进程已结束,退出代码0
|
Random 类(生成随机数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| package com.tipdm.demo02;
import java.util.Random;
public class demo1 { public static void main(String[] args) { Random ran = new Random(); byte[] a = new byte[10]; ran.nextBytes(a); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } ran.setSeed(2022L); System.out.println("==============="); System.out.println("Int范围内随机数:" + ran.nextInt()); System.out.println("Long范围内的随机数:" + ran.nextLong()); System.out.println("指定范围内随机数:" + ran.nextInt(5)); System.out.println("0-1直接的Double浮点数:" + ran.nextDouble()); System.out.println("0-1直接的Float浮点数:" + ran.nextFloat()); System.out.println("生成均值为0,方差为1的高斯分布随机数:" + ran.nextGaussian()); System.out.println("生成一个随机bool数:" + ran.nextBoolean()); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 25 103 -10 54 44 92 -97 -116 -31 119 =============== Int范围内随机数:-1636420702 Long范围内的随机数:2245207439052422374 指定范围内随机数:2 0-1直接的Double浮点数:0.509194274098713 0-1直接的Float浮点数:0.40048516 生成均值为0,方差为1的高斯分布随机数:-0.4719171609218587 生成一个随机bool数:false
进程已结束,退出代码0
|
练习:根据int变量n的值,来获取随机数字,范围是[1, n],可以取到1也可以取到n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package com.tipdm.demo02;
import java.util.Random; import java.util.Scanner;
public class demo2 { public static void main(String[] args) { Random ran = new Random(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < 10; i++) { int res = ran.nextInt(n) + 1; System.out.println(res); } } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| 6 2 6 5 6 1 6 6 5 6 2
进程已结束,退出代码0
|
练习:猜数字小游戏
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package com.tipdm.demo02;
import java.util.Random; import java.util.Scanner;
public class demo3 { public static void main(String[] args) { System.out.println("猜数字游戏请才一个0~100中的数字。"); Random ran = new Random(); Scanner sc = new Scanner(System.in); int num = ran.nextInt(101); int n = 1; while(true){ int get_num = sc.nextInt(); if(get_num > num){ System.out.println("大了!" + n); }else if(get_num < num){ System.out.println("小了!" + n); }else{ System.out.println("恭喜你猜中了,数字就是:" + num + ", 你一共猜了" + n + "次。"); break; } n++; } } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 猜数字游戏请才一个0~100中的数字。 90 大了!1 45 小了!2 70 小了!3 80 小了!4 85 大了!5 83 大了!6 82 恭喜你猜中了,数字就是:82, 你一共猜了7次。
进程已结束,退出代码0
|