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的更多相关文章

  1. Java中的引用类型(强引用、弱引用)和垃圾回收

    Java中的引用类型和垃圾回收 强引用Strong References 强引用是最常见的引用: 比如: StringBuffer buffer = new StringBuffer(); 创建了一个 ...

  2. java中的引用类型:强软弱虚

    java中的引用类型共4种:强软弱虚,具体每种类型的特点和应用场景.记录下.本文是看了马士兵老师的视频后记录整理的.加深印象. 基本概念 1. 强引用 强引用是使用最普遍的引用.如果一个对象具有强引用 ...

  3. Java流程控制与Scanner类的使用

    Java流程控制与Scanner类的使用 Scanner类 Scanner类可以使程序接受键盘输入,实现人机交互 一个完整的Scanner的使用例子: //创建一个扫描器对象,用于接收键盘数据 Sca ...

  4. Java中的引用类型和使用场景

    作者:Grey 原文地址:Java中的引用类型和使用场景 Java中的引用类型有哪几种? Java中的引用类型分成强引用, 软引用, 弱引用, 虚引用. 强引用 没有引用指向这个对象,垃圾回收会回收 ...

  5. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  6. Java中直接输出一个类的对象

    例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...

  7. Java中Date和Calender类的使用方法

    查看文章     Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...

  8. Java中的不可变类理解

    一.Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修 ...

  9. Java 中的静态嵌套类和非静态嵌套类

    Java 中的静态嵌套类和非静态嵌套类 术语:嵌套类分为两类:静态嵌套类和非静态嵌套类.声明 static 的嵌套类称为静态嵌套类,非静态嵌套类也称为内部类. class OuterClass { p ...

随机推荐

  1. Oracle中使用透明网关链接到Sqlserver(转)

    测试环境介绍 1.ORACLEServer   Database version:10.2.0 IP:192.168.1.5 ORACLE_HOME:D:\oracle\product\10.2.0\ ...

  2. 浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP)

    主要内容: ROMP的算法流程 ROMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 一.ROMP的算法流程 正则化正交匹配追踪ROMP算法流程与OMP的最大不同之 ...

  3. windows多线程同步--信号量

    推荐参考博客:秒杀多线程第八篇 经典线程同步 信号量Semaphore   首先先介绍和windows信号量有关的两个API:创建信号量.释放信号量   HANDLE WINAPI CreateSem ...

  4. cache line 伪共享

    https://blog.csdn.net/qq_27680317/article/details/78486220认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访 ...

  5. 廉价的SUP掌机拆解

    最近经常出现的一款山寨sup掌机, 75元包邮入手, 全套配件如下. 看看正面和背面的实拍图, 比较明显的廉价玩具塑料感. 手柄和充电线共用下方的microUSB口, 所以在双打时是不能用电源供电的. ...

  6. JSP 性能优化

    无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载和执行 ...

  7. Swift 值类型和引用类型的内存管理

    1.内存分配 1.1 值类型的内存分配 在 Swift 中定长的值类型都是保存在栈上的,操作时不会涉及堆上的内存.变长的值类型(字符串.集合类型是可变长度的值类型)会分配堆内存. 这相当于一个 &qu ...

  8. MUI class="mui-switch" 开关监听

    如何对MUI中的switch开关按钮进行监听, 页面代码如下: <form class="mui-input-group"> <ul class="mu ...

  9. 详述socket编程之select()和poll()函数

    转自:http://www.cppblog.com/myjfm/archive/2011/10/26/159093.aspx select()函数和poll()函数均是主要用来处理多路I/O复用的情况 ...

  10. 1 翻译系列:什么是Code First(EF 6 Code First 系列)

    原文链接:http://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx EF 6 Code-First系列文章目录 ...