Scanner中nextLine()的坑 以及 Random的使用

先列出代码:

package com.zhiyou.contendemo;

import java.util.Random;
import java.util.Scanner;

public class IfDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年龄:");
int age = scanner.nextInt();
System.out.println("请输入名字:");
String name = scanner.nextLine();
System.out.println("年龄:"+age+"\t名字:"+name);
scanner.close();
}

}

运行结果:
这里写图片描述
如上图所示:当nextInt()方法在nextLine()方法前使用时,运行发现没输入名字就跳到了下一步。
原因:nextLine()会自动接收上方nextInt()的回车符,导致不能输入。
解决办法:

1. 直接用next()方法替换nextLine()方法。
2.nextLine()方法前再加一个nextLine(),用q前面的nextLine()去接收nextInt() 的换行符。

Scanner 的简单使用:

ScannerString都是JDK提供的工具类,都是引用类型
System.in 系统录入 和 System.out相反
使用步骤:

第一步:导入
    import java.util.Scanner;
第二步:创建一个Scanner对象,用于接收系统的录入
    Scanner scanner = new Scanner(System.in);
第三步:定义对象进行输入
    int age = scanner.nextInt();
第四步:关闭输入
    scanner.close();

Random 的简单使用:

使用步骤跟Scanner一样
int intValue = random.nextInt(10);
其中nextInt(10) 的取值范围为 [0,10)。

double doubleValue = random.nextDouble();
其中nextDouble()的取值范围是[0,1).

例:
取[50,100)之间的随机数:
[50,100) == [0,50)+50
int intValue = random.nextInt(50)+50;
取[13,57]之间的随机数:
[13,57] == [0,45) + 13
int intValue = random.nextInt(45)+13;

可以简单记为:
假如取值范围为:[a,b]
int intValue = random.nextInt(b - a + 1) + a;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值