1、输入语句
问题:如何从键盘获取不同类型的变量???
需要使用Scanner类
导包:
import java.util.Scanner;
Scanner的实例化
调用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);
}
}
物竞天择,适者生存,加油吧 !!!