**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照下面判定用户是否赢得奖金:
1. 如果用户输入的所有数包括顺序完全匹配彩票数字,奖金是10000美元。
2. 如果用户输入的所有数匹配彩票的所有数字,奖金是3000美元。
3. 如果用户输入的其中一个数匹配彩票号码中的一个数,奖金是1000美元。
**3.15(Game: lottery) Revise Listing 3.8, Lottery.java, to generate a lottery of a three-digit number. The program prompts the user to enter a three-digit number and determines whether the user wins according to the following rules:
1. If the user input matches the lottery number in the exact order, the award is
$10,000.
2. If all digits in the user input match all digits in the lottery number, the award
is $3,000.
3. If one digit in the user input matches a digit in the lottery number, the award
is $1,000.
下面是参考答案代码:
import java.util.*;
public class LotteryQuestion15 {
public static void main(String[] args) {
int guess, guessDigit1, guessDigit2, guessDigit3;
final int lotteryDigit1, lotteryDigit2, lotteryDigit3;
// Generate a lottery number
final int lottery = (int)(Math.random() * 1000);
// Prompt the user to enter a guess
System.out.print("Enter your lottery pick (three digits): ");
Scanner input = new Scanner(System.in);
guess = input.nextInt();
// Get digits from guess
guessDigit1 = guess / 100;
guessDigit2 = guess % 100 / 10;
guessDigit3 = guess % 10;
// Get digits from lottery
lotteryDigit1 = lottery / 100;
lotteryDigit2 = lottery % 100 / 10;
lotteryDigit3 = lottery % 10;
// Check the guess
if(lottery == guess)
System.out.println("Exact match:you win $10000");
else if((lotteryDigit1 == guessDigit1 && lotteryDigit2 == guessDigit3 && lotteryDigit3 == guessDigit2)
||(lotteryDigit1 == guessDigit2 && lotteryDigit2 == guessDigit1 && lotteryDigit3 == guessDigit3)
||(lotteryDigit1 == guessDigit2 && lotteryDigit2 == guessDigit3 && lotteryDigit3 == guessDigit1)
||(lotteryDigit1 == guessDigit3 && lotteryDigit2 == guessDigit1 && lotteryDigit3 == guessDigit2)
||(lotteryDigit1 == guessDigit3 && lotteryDigit2 == guessDigit2 && lotteryDigit3 == guessDigit1))
{
System.out.println("Match all digits:you win $3000");
}
else if(lotteryDigit1 == guessDigit1 || lotteryDigit1 == guessDigit2 || lotteryDigit1 == guessDigit3
||lotteryDigit2 == guessDigit1 || lotteryDigit2 == guessDigit2 || lotteryDigit2 == guessDigit3
||lotteryDigit3 == guessDigit1 || lotteryDigit3 == guessDigit2 || lotteryDigit3 == guessDigit3)
{
System.out.println("Match one digit:you win $1000");
}
else
{
System.out.println("Sorry,no match");
}
input.close();
}
}
运行效果:
注:编写程序要养成良好习惯
如:1.文件名要用英文,具体一点
2.注释要英文
3.变量命名要具体,不要抽象(如:a,b,c等等),形式要驼峰化
4.整体书写风格要统一(不要这里是驼峰,那里是下划线,这里的逻辑段落空三行,那里相同的逻辑段落空5行等等)