【发布时间】:2020-02-08 06:40:12
【问题描述】:
生成一个三位数的彩票。程序提示用户输入一个三位数字,根据以下规则判断用户是否中奖:
- (规则 1)。如果用户输入的中奖号码与中奖号码完全一致,则奖金为 10,000 美元。
- (规则 2)。如果用户输入的所有数字都与彩票号码中的所有数字匹配,则奖金为 3,000 美元。
- (规则 3)。如果用户输入的一位数字与彩票号码中的一位数字匹配,则奖金为 1,000 美元。
我需要帮助让我的程序按照代码中的所有内容按预期运行。没有数组,没有字符串,除了已经存在的东西之外什么都没有。我的问题是,在规则 3 中,我不明白为什么它不能识别中奖数字。例如,我的猜数字是 142,彩票数字是 554,它会说“不匹配,下次好运”而不是“匹配一个数字,即使我的猜测中有一个正确的数字。
import java.util.Scanner;
public class Lottery {
public static void main(String[] args) {
//generate random lottery numbers
int lottery = (int)(Math.random() * 1000);
//ask user to enter a 3 digit integer and store those numbers
Scanner numbers = new Scanner(System.in);
System.out.println("Please enter your lottery pick. Three Digits Only");
int guess = numbers.nextInt();
// numbers for lottery
int lotteryDigit1 = lottery % 100;
int lotteryDigit2 = lottery % 100 / 10;
int lotteryDigit3 = lottery / 100;
//get digits from guess
int guessDigit1 = guess % 100;
int guessDigit2 = guess % 100 / 10;
int guessDigit3 = guess / 100;
//print out lottery numbers
System.out.println("The lottery numbers are: " + lottery);
if (guess == lottery)
System.out.println("Exact Match!!! 10,000$ Prize!!!");
else if (guessDigit2 == lotteryDigit1
&& guessDigit1 == lotteryDigit2
&& guessDigit3 == lotteryDigit3)
System.out.println("Matched all numbers!!! 3,000$ Prize!!!");
//Rule 3
else if (guessDigit1 == lotteryDigit1
|| guessDigit1 == lotteryDigit2
|| guessDigit1 == lotteryDigit3
|| guessDigit2 == lotteryDigit1
|| guessDigit2 == lotteryDigit2
|| guessDigit2 == lotteryDigit3
|| guessDigit3 == lotteryDigit1
|| guessDigit3 == lotteryDigit2
|| guessDigit3 == lotteryDigit3)
System.out.println("Mathed one number!!! 1,000$ Prize!!!");
else enter code here
System.out.println("No Match, Better Luck Next Time!");
【问题讨论】:
标签: java