假如你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。
①如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
②如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
③如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
④如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
⑤如果用户输入的数字没有匹配任何一个数字,则彩票作废。
首先需要知道如何随机生成一个两位整数:
①Math.random()函数可以产生范围在[0,1)的随机值;
②Math.random()*100得到的是范围在[0,100)之内的随机值;该范围中包含0-9(一位数),显然不符合两位数的要求。可以使用 :
- Math.random()*90:范围在[0,90)
- Math.random()*90+10:范围在[10,100)此时可能出现99.xxxx不合规
- 最后 (int)(Math.random() * 90 + 10) 强制转换为int型范围变为[10,99]
总结:可以通过 (int)(Math.random() * 90 + 10) ,产生一个两位数的随机数。
完整实现:
package com.atguigu.java;
import java.util.Scanner;
public class CaiPiaoTest {
public static void main(String[] args) {
//①先随机生成一个两位数
//Math.random():产生[0,1)之间的随机数
int number=(int)(Math.random()*90+10);
int numberShi=number/10; //得到彩票十位上的数字
int numberGe=number%10; //得到彩票个位上的数字
//②用户输入一个两位数
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个两位数:");
int guess = scanner.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);
}
}
提醒:要注意if-else结构的顺序,否则可能报错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)