Scanner输入语句
- 问题:如何从键盘获取不同类型的变量,需要使用Scanner类
- 1.导包:import java.util.Scanner;
- 2.Scanner的实例化;
- 3.调用Scanner类的相关方法,来获取指定的变量。
import java.util.Scanner;
class IFTest{
public static void main(String[] args){
//声明一个Scanner
Scanner scan = new Scanner(System.in);
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);
System.out.println("请输入你的姓名:");
String name = scan.next();
System.out.println(name);
System.out.println("请输入你的年龄:");
int age = scan.nextInt();
System.out.println(age);
System.out.println("请输入你的体重:");
double weight = scan.nextDouble();
System.out.println(weight);
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);
}
}
岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断
import java.util.Scanner;
class IFTest02{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入岳小鹏的成绩:");
int score = scan.nextInt();
if(score == 100){
System.out.println("奖励一辆BMW");
}else if(score >80 && score <=99){
System.out.println("奖励一台iphone xs max");
}else if(score >= 60 && score <= 80){
System.out.println("奖励一个iPad");
}else{
System.out.println("奖励?学习去!!!");
}
}
}
编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用if-else if-else),并且从小到大输出。
import java.util.Scanner;
class Sorting{
public static void main(String[] args){
//Scanner实例化
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int num1 = scan.nextInt();
System.out.println("请输入第二个整数:");
int num2 = scan.nextInt();
System.out.println("请输入第三个整数:");
int num3 = scan.nextInt();
int MaxNumber = 0;
if(num1 >= num2 ){
if(num3 >= num1){
System.out.println(num2 + "," + num1 + "," + num3);
}else if(num3 <= num2){
System.out.println(num3 + "," + num2 + "," + num1);
}else{
System.out.println(num2 + "," + num3 + "," + num1);
}
}else{
if(num3 >= num2){
System.out.println(num1 + "," + num2 + "," + num3);
}else if(num3 <= num1){
System.out.println(num3 + "," + num1 + "," + num2);
}else{
System.out.println(num1 + "," + num3 + "," + num2);
}
}
}
}
获取随机数
Math.random():[0,0.1) 默认是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);
}
}
大家都知道,男大当婚,女大当嫁。
那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上;
富:财富1千万以上;
帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”
import java.util.Scanner;
class GaoFuTest{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的身高:(cm)");
int height = scan.nextInt();
System.out.println("请输入你的财富:(千万)");
double weight = scan.nextDouble();
// System.out.println("请输入你是否帅:(true/false)");
// boolean isHandSome = scan.nextBoolean();
// if(height >= 180 && weight >= 1 && isHandSome){
// System.out.println("我一定要嫁给他!!!");
// }else if(height >= 180 || weight >= 1 || isHandSome){
// System.out.println("嫁吧,比上不足,比下有余。");
// }else{
// System.out.println("不嫁!");
// }
//方式二
System.out.println("请输入你是否帅: (是or否)");
String isHandsome = scan.next();
if(height >= 100 && weight >= 1 && isHandsome.equals("是")){
System.out.println("我一定要嫁给他!!!");
}else if(height >= 180 || weight >= 1 || isHandsome.equals("是")){
System.out.println("嫁吧,比上不足,比下有余。");
}else{
System.out.println("不嫁!");
}
}
}