Java中的引用类型Scanner类和随机类型Random
Scanner类
我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型。
引用数据类型的使用
与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。
数据类型 变量名 = new 数据类型();
每种引用数据类型都有其功能,我们可以调用该类型实例的功能。
变量名.方法名();
Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
Scanner使用步骤:
//导包:
import java.util.Scanner; //创建对象实例:
Scanner sc = new Scanner(System.in); //调用方法
int i = sc.nextInt(); //用来接收控制台录入的数字
String s = sc.next(); //用来接收控制台录入的字符串
了解完Scanner类,我们编写代码来使用下它:
ScannerDemo01.java
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) { //创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in); //获取数字 System.out.println("请输入一个数字");
int n = sc.nextInt();
System.out.println("n的值为" + n); //获取字符串
System.out.println("请输入一个字符串");
String str = sc.next();
System.out.println("str的值为" + str);
}
}
运行结果如下图所示。

2.随机数类Random
我们来学习下,用来产生随机数的类Random,它也属于引用数据类型。
这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式。
public int nextInt(int maxValue) // 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue; public double nextDouble() //产生[0,1)范围的随机小数,包含0.0,不包含1.0。
引用数据类型的使用方式,在学习键盘录入Scanner时,我们已经学习过,在这里,再次回顾一下:
l Random使用方式:
n import导包:所属包java.util.Random
n 创建实例格式:Random 变量名 = new Random();
接下来,通过一段代码,一起学习下Random类的使用.
RandomDemo.java
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
// 创建Random类的实例
Random r = new Random(); // 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量
int i = r.nextInt(100); //得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量
double d = r.nextDouble(); System.out.println(i);
System.out.println(d); } }
运行结果如下图所示:
猜数字案例
1.1 案例介绍
我们在日常生活中,经常与朋友们玩猜数字的游戏,非常的有趣。现在我们通过java把这个猜数字游戏编写出来。
猜数字案例是要完成什么样的功能呢?顾名思义,这个游戏就是你出个数字、我来猜。
游戏操作如下:
l 后台预先生成一个1-100之间的随机数,用户键盘录入猜数字
l 如果猜对了,打印“恭喜您,答对了”
l 如果猜错了:猜大了:打印“sorry,您猜大了!” 猜小了:打印“sorry,您猜小了!”
直到数字猜到为止
1.2 案例需求分析、
l 1.通过Random类中方法nextInt(),生成一个1-100之间的随机数
l 2.输入猜的数字
l 3.通过while循环,进行猜数字对错判断
n 猜对,跳出循环,游戏结束
n 猜错了,根据结果,给出提示,接着猜数字,游戏继续
u 如果猜大了,打印sorry,您猜大了!继续下一次循环
u 如果猜小了,打印sorry,您猜小了!继续下一次循环
1.3 实现代码步骤
分析完毕之后,在main()方法中,我们一起来完成代码的编写:GuessNumber.java
public class GuessNumber {
public static void main(String[] args) {
//1.通过Random类中方法nextInt(),生成一个1-100之间的随机数
int randomNumber = new Random().nextInt(100);
System.out.println("随机数已生成!");
//2.输入猜的数字
System.out.println("----请输入您猜的数字:----");
Scanner sc = new Scanner(System.in);
int enterNumber = sc.nextInt();
//3.通过while循环,进行猜数字对错判断
//猜对,跳出循环,游戏结束
while(enterNumber != randomNumber){
//猜错了,根据结果,给出提示,接着猜数字,游戏继续
if(enterNumber>randomNumber) {
//如果猜大了,打印sorry,您猜大了!继续下一次循环
System.out.println("sorry,您猜大了!继续下一次循环");
}else {
//如果猜小了,打印sorry,您猜小了!继续下一次循环
System.out.println("sorry,您猜小了!继续下一次循环");
}
//输入猜的数字
System.out.println("----请输入您猜的数字:----");
enterNumber = sc.nextInt();
}
System.out.println("恭喜您,答对了!");
}
}
Java中的引用类型Scanner类和随机类型Random的更多相关文章
- Java中的引用类型(强引用、弱引用)和垃圾回收
Java中的引用类型和垃圾回收 强引用Strong References 强引用是最常见的引用: 比如: StringBuffer buffer = new StringBuffer(); 创建了一个 ...
- java中的引用类型:强软弱虚
java中的引用类型共4种:强软弱虚,具体每种类型的特点和应用场景.记录下.本文是看了马士兵老师的视频后记录整理的.加深印象. 基本概念 1. 强引用 强引用是使用最普遍的引用.如果一个对象具有强引用 ...
- Java流程控制与Scanner类的使用
Java流程控制与Scanner类的使用 Scanner类 Scanner类可以使程序接受键盘输入,实现人机交互 一个完整的Scanner的使用例子: //创建一个扫描器对象,用于接收键盘数据 Sca ...
- Java中的引用类型和使用场景
作者:Grey 原文地址:Java中的引用类型和使用场景 Java中的引用类型有哪几种? Java中的引用类型分成强引用, 软引用, 弱引用, 虚引用. 强引用 没有引用指向这个对象,垃圾回收会回收 ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java中直接输出一个类的对象
例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...
- Java中Date和Calender类的使用方法
查看文章 Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...
- Java中的不可变类理解
一.Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修 ...
- Java 中的静态嵌套类和非静态嵌套类
Java 中的静态嵌套类和非静态嵌套类 术语:嵌套类分为两类:静态嵌套类和非静态嵌套类.声明 static 的嵌套类称为静态嵌套类,非静态嵌套类也称为内部类. class OuterClass { p ...
随机推荐
- BZOJ3682 Phorni 后缀平衡树
后缀平衡树的裸题 后缀平衡树简单的思想如下 具体的可以去看$clj$的论文 假设我们已经有了串$S$的后缀平衡树 插入一个字母$c$ 我们用$Si$代表原串$S$从第$i$个字符开始的后缀 则后缀$c ...
- 支付宝集成遇到"_EVP_DecodeBlock",referenced from:报错
遇到问题报错如下: 调试了好多遍,始终不行,检测各种依赖库,发现并没有少什么.后来发现支付宝demo里比文档讲解里面多两个.a文件 直接加上就好了
- __Linux__操作系统发展史
常见操作系统win7.Mac.Android.iOS . 操作系统的发展史 1.Unix 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时 ...
- DBProxy
DBProxy/USER_GUIDE.md at master · Meituan-Dianping/DBProxy https://github.com/Meituan-Dianping/DBP ...
- GOCN每日新闻(2017-08-12)
1.为什么我们从 Python 转向 Go 2.Go 实现常见数据结构 3.3年半,50万行 Go 代码 4.Go 游戏引擎 oka 5.Go 是隐藏学习曲线的语言
- EasyUI学习总结(五)——EasyUI组件使用
一.EasyUI组件的简单介绍 easyUI提供了很多组件让我们使用,如下图所示:
- 【Spark】Sparkstreaming-性能调优
Sparkstreaming-性能调优 Spark Master at spark://node-01:7077 sparkstreaming 线程 数量_百度搜索 streaming中partiti ...
- MSSQL存储过程
存储过程的种类: 1.系统存储过程. 以sp_开头 2.扩展存储过程. 以xp_开头 3.用户定义存储过程. --重新编译存储过程 exec ...
- windows多线程同步互斥--总结
我的windows多线程系列文章: windows多线程--原子操作 windows多线程同步--事件 windows多线程同步--互斥量 windows多线程同步--临界区 windows多线程同步 ...
- 利用Xmanager Enterprise 5的passive显示远程linux主机图形化信息
问题描述: 最初的需求是,安装oracle数据(第一次安装都是图形化linxu进去一步步操作,后续发现可以命令静默安装不调用图形化,学习就是步步入深,方得始终),最初实现window弹出linux主机 ...