七、键盘录入Scanner和随机数Random

一、键盘录入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、键盘录入一段字符串

1next()方法,录入一段字符串,使用字符串类型接收
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中的 流程控制(程序的执行流程)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值