gpt4 book ai didi

java - 随机生成数字的问题 - Java

转载 作者:行者123 更新时间:2023-12-01 18:18:09 25 4
gpt4 key购买 nike

我正在研究 Joyce Farrell 所著的《Java 编程》书中的这个项目,但我遇到了随机生成的数字和用户的猜测未正确检查的问题。例如,用户有 3 个猜测,假设他们第一次猜测 2,第一个随机生成的数字是 2,程序将打印出你输了。当猜测确实正确时。请帮我。我已经添加了该计划的详细信息以及我迄今为止所做的事情。

<小时/>

创建一个彩票游戏应用程序。生成三个随机数(请参阅附录 D 以获取帮助)这样做),每个数字在 0 到 9 之间。允许用户猜测三个数字。比较每一个用户对三个随机数的猜测并显示一条消息,其中包括用户的猜测猜测,随机确定的三位数,以及用户拥有的金额获胜如下。

匹配数字奖($)

任何一个匹配 10两个匹配 100三个匹配,不按顺序排列 1000三个匹配,精确顺序为 1,000,000

没有匹配0

确保您的应用程序可以容纳重复的数字。例如,如果用户猜测1、2、3,随机生成的数字是1、1、1,不给用户三个正确猜测的功劳——只有一个。将文件另存为 Lottery。

<小时/>

我的源代码

// Filename: Lottery.java
// Written by: Andy A
// Written on: 14 January 2015

import java.util.Scanner;
import java.util.Random;

public class Lottery {

public static void main(String[] args) {

Scanner userInput = new Scanner(System.in);
Random ranNum = new Random();

// LIMIT Contains The Numbers From 0 - 9
// TIMES Contains The Number of Time ranNum Should Run
final int LIMIT = 9;
final int TIMES = 3;

// Users Guesses
int usersFirstGuess;
int usersSecondGuess;
int usersThirdGuess;

// Randomly Generated Numbers
final int GenFirst = ranNum.nextInt(LIMIT);
final int GenSecond = ranNum.nextInt(LIMIT);
final int GenThird = ranNum.nextInt(LIMIT);

// User is asked for 3 guesses
System.out.println("Please enter your first guess: ");
usersFirstGuess = userInput.nextInt();
System.out.println("Please enter your second guess: ");
usersSecondGuess = userInput.nextInt();
System.out.println("Please enter your third and final guess: ");
usersThirdGuess = userInput.nextInt();

// Winning Amounts
final double WinTen = 10;
final double WinHun = 100;
final double WinThund = 1000;
final double WinMillion = 1000000;
final int WinZero = 0;

// Shows the randomly generated numbers
for(int x = 0; x < TIMES; ++x)
System.out.print(ranNum.nextInt(LIMIT) + " ");
System.out.println();

// First Generated
if(GenFirst == usersFirstGuess ) {
System.out.println("You have won: $" + WinTen);
}
else if(GenSecond == usersSecondGuess) {
System.out.println("You have won: $" + WinTen);
}
else if(GenThird == usersThirdGuess) {
System.out.println("You have won: $" + WinTen);
}
}
}

最佳答案

您正在使用 ranNum.nextInt(LIMIT) 打印新生成的数字,但您正在将用户输入与存储在 GenXXX 变量中的数字进行比较。

解决方案:打印变量。

System.out.println(GenFirst + " " + GenSecond + " " + GenThird);

如果您仍然想使用循环进行打印,可以将数字存储在数组中。

// generate
final int[] generated = new int[TIMES];
for (int x = 0; x < TIMES; x++)
generated[x] = ranNum.nextInt(LIMIT);

// print
for (int x = 0; x < TIMES; x++)
System.out.print(generated[x] + " ");

关于java - 随机生成数字的问题 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28386909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com