一、键盘录入Scanner
1、Scanner是jdk提供的一个类作用是:
使用Scanner类来实现获取键盘录入的数据,提高数据来源的灵活性
2、只有java.lang包下的类,不需要导包,使用其他包下的类都需要导包所以使用Scanner需要导入包
3、使用步骤:
(1) 导包:
① 目的:为了让jvm定位到Scanner类型所在的具体位置
② 导入方式:在类的声明上方,使用关键字import表示导入
③ import java.util.Scanner;
(2) 创建键盘录入对象
① Scanner sc = new Scanner(System.in);
(3) 调用sc对象的nextInt()方法,获取键盘录入的一个整数
① int x = sc.nextInt();
(4) 使用x完成运算
//1、在类的声明上方,导入键盘录入类所在的包 定位 找到位置
import java.util.Scanner;
class Demo08 {
public static void main(String[] args) {
//2、在主方法内创建键盘录入对象
//语句内sc叫做对象名 名字可以变,其他一个字不能变
Scanner sc = new Scanner(System.in);
//System.in 默认关联至键盘
//3、调用sc对象的nextInt()方法获取一个整数
System.out.println("请录入一个整数:");
int x = sc.nextInt();
//对象中的功能可以多次使用
System.out.println("录入的整数为:" + x);
System.out.println("请再录入一个整数");
int y = sc.nextInt();
System.out.println("第二次:" + y);
}
}
/*
1、对标找保洁公司Scanner想要打扫卫生
2、找到一个名为sc的保洁员
3、保洁员都有功能打扫卫生 叫sc去打扫卫生nextInt()
*/
1、Scanner
//next()
// 1.一定要读取到有效字符后才可以结束输入、
// 2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
// 3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
// 4.next()不能得到带有空格的字符串。
import java.util.Scanner;
public class Scanner {
public static void main(String[] args) {
//创建一个扫描对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next方式接收
String str =scanner.next();
System.out.println("输出内容为:"+str);
}
//但凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
scanner.close();
}
}
---------------------------------------------------------
//nextLine()
//1.以Enter为结束符,也就是说nextLine()方法可以返回的是输入回车之前所有的字符。
//2.可以获得空白
import java.util.Scanner;
public class Scanner {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
//判断是否还有输入
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输出内容为:"+str);
}
scanner.close();
}
}
---------------------------------------------------------
//Scanner对象 获取用户输入
//基本语法 Scanner s= new Scanner(System.in)
//通过Scanner类的next()方法与nextLine()方法获取输入的字符串,在读取之前
//我们一般还需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
import java.util.Scanner;
public class Scanner {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,
// 通过输入非数字来结束输入并输出执行结果;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少数字
int m = 0;
System.out.println("请输入数据");
//通过循环判断是否还有输入,并在里面对每一次来进行统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m + 1; //m++
sum = sum + x;
System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
}
System.out.println(m + "个数的和为" + sum);
System.out.println(m + "个数的平均值是" + (sum / m));
scanner.close();
}
2、键盘录入一段字符串
1、next()方法,录入一段字符串,使用字符串类型接收
import java.util.Scanner;
class Demo09 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段字符串");
String s = sc.next();
//next不适合有空格的字符串,只能录入空格以前的
//如果非要录入有空格的nextLine()
//如果要用nextLine这时候就不能和next或者nextInt混用
//用nextLine就单独创建一个Scanner对象
System.out.println(s);
}
}
练习
1、键盘录入两个整数,求出最大值
2、键盘录入用户名和密码,正确用户名为123 密码为123,均为数字,判断用户输入的用户名是否正确,如果正确,输出登录成功,如果不正确输出登录失败
import java.util.Scanner;
class Demo10 {
public static void main(String[] args) {
//1、键盘录入两个整数,求出最大值
Scanner sc = new Scanner(System.in);
System.out.println("请录入第一个整数:");
int a = sc.nextInt();
System.out.println("请录入第二个整数:");
int b = sc.nextInt();
System.out.println(a > b ? a : b);
}
}
import java.util.Scanner;
class Demo11 {
public static void main(String[] args) {
//2、键盘录入用户名和密码,正确用户名为123 密码为123,
//均为数字,判断用户输入的用户名是否正确,
//如果正确,输出登录成功,如果不正确输出登录失败
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt();
//判断用户名和密码是否正确
String s = username == 123 && password == 123 ? "登录成功" : "登录失败";
System.out.println(s);
}
}
二、随机数Random
java.util包大多数都是一些工具类
Random类主要功能,是可以在指定范围生成一个随机数
2、Random使用步骤:
(1) 导包:将Random类所在的包导入到类的声明上方
- import java.util.Random;
(2) 创建Random对象
- Random r = new Random();
(3) 使用r对象调用Random类型中的方法 nextInt();
① nextInt(int n):n代表一个参数,表示要生成随机数的范围,此方法生成的范围[0,n)包含0,不包含n,又因为随机数是整数,所以实际范围 0~n-1
② 生成的随机数是一个整数,所以用整型接收
int n = r.nextInt(10);
此时随机生成的范围0~9
//1、导入随机数所在的包
import java.util.Random;
class Demo12 {
public static void main(String[] args) {
//2、创建随机数对象
Random r = new Random();
//3、调用r对象中的功能,nextInt(int n)获取一个随机数
//n表示的随机数的范围 0~n-1
int n = r.nextInt(5);//0~4
System.out.println("随机数为:" + n);
//生成10~20的随机数 -10
//0~10 n为11
int m = r.nextInt(11)+10;
System.out.println("随机数为" + m);
}
}
练习
1、生成一个30~50范围内的随机数,进行猜数字,如果相同输出猜对了,如果不同输出猜错了
import java.util.Random;
import java.util.Scanner;
class Demo13 {
public static void main(String[] args) {
//生成一个30~50范围内的随机数,进行猜数字,
//如果相同输出猜对了,如果不同输出猜错了
Random r = new Random();
//30~50
//我们能生成 0,n-1
//30-30~50-30 0~20
//0~20 21
int n = r.nextInt(21) + 30;
//猜n
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int m = sc.nextInt();
System.out.println(n == m ? "猜对了" : "猜错了");
}
}
2、生成一个范围是2~n的随机数,n为键盘录入的数字
import java.util.Scanner;
import java.util.Random;
class Demo14 {
public static void main(String[] args) {
//2、生成一个范围是2~n的随机数,n为键盘录入的数字
//2-n 0~n-2 + 2
Scanner sc = new Scanner(System.in);
Random r = new Random();
System.out.println("请输入一个范围");
int n = sc.nextInt();
//0~n-1
int m = r.nextInt(n-1)+2;
System.out.println(m);
}
}
下一章节介绍一下Java中的 流程控制(程序的执行流程)