【Java基础】输入语句 & 获取随机数

1、输入语句

问题:如何从键盘获取不同类型的变量???

需要使用Scanner类

  1. 导包:import java.util.Scanner;

  2. Scanner的实例化

  3. 调用Scanner类的相关方法,来获取指定的变量

import java.util.Scanner;//1.导包

class IFTest{
	public static void main(String[] args){
		//2.Scanner实例化
		Scanner scan = new Scanner(System.in);
        //3.调用Scanner类的相关方法,来获取指定的变量
		int num = scan.nextInt();

		System.out.println(num);
	}
}

注意: 需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException 导致程序终止

import java.util.Scanner;//导包

class IFTest{
	public static void main(String[] args){
		//Scanner实例化
		Scanner scan = new Scanner(System.in);
        
		//String
		System.out.println("请输入你的姓名:");
		String name = scan.next();//注意
		System.out.println(name);
        
		//int
		System.out.println("请输入你的年龄:");
		int age = scan.nextInt();
		System.out.println(age);
        
		//double
		System.out.println("请输入你的体重:");
		double weight = scan.nextDouble();
		System.out.println(weight);
        
		//boolean
		System.out.println("你是否单身?(true/false)");
		boolean isLive = scan.nextBoolean();
		System.out.println(isLive);

		//对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串
		System.out.println("请输入你的性别:(男/女)");
		String TF = scan.next();
		char TFChar = TF.charAt(0);//获取索引为0位置上的字符
		System.out.println(TFChar);
	}
}

2、获取随机数

如何获取一个指定范围随机数???

需要使用Math类的random()方法

Math.random():[0,1.0) 默认是double类型

Math.random() * 90:[0.0,90.0)

(int)(Math.random() * 90):[0,89]

(int)(Math.random() * 90 + 10):[10,99]

公式:获取[a,b]范围的随机数:(int)(Math.random() * (b - a + 1) + a)

练习题

假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。
1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金3 000美元。
3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。
提示:使用(int)(Math.random() * 90  + 10)产生随机数。
Math.random() : [0,1)  * 90 -->[0,90) + 10 -->[10,100)-->[10,99]

【代码实现】

import java.util.Scanner;

class CaiTest{
	public static void main(String[] args){
		//1、随机产生一个两位数
		int number = (int)(Math.random() * 90 + 10);//得到[10,99],即[10,100)
		
		int numberShi = number/10;
		int numberGe = number%10;
		
		//2、用户输入一个两位数
		Scanner input = new Scanner(System.in);
		System.out.print("请输入一个两位数:");
		int guess = input.nextInt();
		
		int guessShi = guess/10;
		int guessGe = guess%10;
		
		if(number == guess){
			System.out.println("奖金10 000美元");
		}else if(numberShi == guessGe && numberGe == guessShi){
			System.out.println("奖金3 000美元");
		}else if(numberShi==guessShi || numberGe == guessGe){
			System.out.println("奖金1 000美元");
		}else if(numberShi==guessGe || numberGe == guessShi){
			System.out.println("奖金500美元");
		}else{
			System.out.println("没中奖");
		}
		
		System.out.println("中奖号码是:" + number);
	}
}

物竞天择,适者生存,加油吧 !!!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值