在我的随机数生成器中搜索错误
searching for errors in my random number generator
我应该创建一个 "game" 来分配一个随机数并允许用户猜测这个数字,然后它应该显示猜测的数量。
只是想知道我错过了什么,因为我目前无法编译它......
不介意指出我的错误。
// ---------1---------2---------3---------4---------5---------6---------7
// 1234567890123456789012345678901234567890123456789012345678901234567890
import java.util.Scanner;
import java.util.Random;
public class RandomNumbersGame
{
public static void main(String[] args)
{
int low = 1;
int max = 100;
int randomNumber = random.nextInt(max - low + 1) + low;
Random rand = new Random();
return randomNumber;
String guessCount = 1;
int userNumber;
Scanner keyboard = new Scanner(System.in);
userNumber = keyboard.nextInt();
while (userNumber != randomNumber)
if (userNumber > randomNumber)
{
System.out.println("Too high, try again.");
}
else (userNumber < randomNumber)
{
System.out.println("Too low, guess again.");
}
else (userNumber == randomNumber)
{
System.out.println("It took you " + "of guesses.");
}
}
}
首先,您必须跟踪 opening/closing 括号。此外,您必须将 readKey 功能 放在 您的 while 循环中,否则您最终会一遍又一遍地检查相同的值。试试像
while(userNumber != randomNumber) {
userNumber = keyboard.nextInt();
if(userNumber > randomNumber) {
}
else if(userNumber < randomNumber) {
}
else if(userNumber == randomNumber) {
}
else {
}
}
如果要检查多个条件,则必须注意 if 语句语法。
此外,您应该阅读 方法签名 和 return 语句 因为
return randomNumber;
完全没有意义。
最后一点是关于数据类型的:
String guessCount = 1;
应该是:
int guessCount = 1;
如果你想在之后打印它,你只需将它转换为 string
public static void main(String... args) {
int low = 1;
int max = 10;
Random random = new Random();
int randomNumber = random.nextInt(max - low + 1) + low;
int guessCount = 1;
int userNumber;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Enter your guess number = ");
userNumber = scanner.nextInt();
if (userNumber > randomNumber) {
guessCount++;
System.out.println("Too high, try again.");
}
else if (userNumber < randomNumber) {
guessCount++;
System.out.println("Too low, guess again.");
}
else if (userNumber == randomNumber) {
System.out.println("It took you " + guessCount + " times of guesses.");
}
} while (userNumber != randomNumber);
}
我想你想像上面那样测试。 100 太多了,无法猜测 :D
有多个问题:
1> return 语句对 public static void main(String[] args)
无效。 return 类型为空。我不明白你想用 Random
达到什么目的。所以固定不了。它也有多个问题
2> 您正试图在 else 之后进行调节。那是不正确的。如果你想检查,你可以像这样通过多个 if
语句来检查。
if (userNumber > randomNumber)
{
System.out.println("Too high, try again.");
}
if (userNumber < randomNumber)
{
System.out.println("Too low, guess again.");
}
if (userNumber == randomNumber)
{
System.out.println("It took you " + "of guesses.");
}
3> String guessCount = 1;
guessCount 是字符串,您试图分配整数。这是非法的。
我应该创建一个 "game" 来分配一个随机数并允许用户猜测这个数字,然后它应该显示猜测的数量。 只是想知道我错过了什么,因为我目前无法编译它...... 不介意指出我的错误。
// ---------1---------2---------3---------4---------5---------6---------7
// 1234567890123456789012345678901234567890123456789012345678901234567890
import java.util.Scanner;
import java.util.Random;
public class RandomNumbersGame
{
public static void main(String[] args)
{
int low = 1;
int max = 100;
int randomNumber = random.nextInt(max - low + 1) + low;
Random rand = new Random();
return randomNumber;
String guessCount = 1;
int userNumber;
Scanner keyboard = new Scanner(System.in);
userNumber = keyboard.nextInt();
while (userNumber != randomNumber)
if (userNumber > randomNumber)
{
System.out.println("Too high, try again.");
}
else (userNumber < randomNumber)
{
System.out.println("Too low, guess again.");
}
else (userNumber == randomNumber)
{
System.out.println("It took you " + "of guesses.");
}
}
}
首先,您必须跟踪 opening/closing 括号。此外,您必须将 readKey 功能 放在 您的 while 循环中,否则您最终会一遍又一遍地检查相同的值。试试像
while(userNumber != randomNumber) {
userNumber = keyboard.nextInt();
if(userNumber > randomNumber) {
}
else if(userNumber < randomNumber) {
}
else if(userNumber == randomNumber) {
}
else {
}
}
如果要检查多个条件,则必须注意 if 语句语法。
此外,您应该阅读 方法签名 和 return 语句 因为
return randomNumber;
完全没有意义。
最后一点是关于数据类型的:
String guessCount = 1;
应该是:
int guessCount = 1;
如果你想在之后打印它,你只需将它转换为 string
public static void main(String... args) {
int low = 1;
int max = 10;
Random random = new Random();
int randomNumber = random.nextInt(max - low + 1) + low;
int guessCount = 1;
int userNumber;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Enter your guess number = ");
userNumber = scanner.nextInt();
if (userNumber > randomNumber) {
guessCount++;
System.out.println("Too high, try again.");
}
else if (userNumber < randomNumber) {
guessCount++;
System.out.println("Too low, guess again.");
}
else if (userNumber == randomNumber) {
System.out.println("It took you " + guessCount + " times of guesses.");
}
} while (userNumber != randomNumber);
}
我想你想像上面那样测试。 100 太多了,无法猜测 :D
有多个问题:
1> return 语句对 public static void main(String[] args)
无效。 return 类型为空。我不明白你想用 Random
达到什么目的。所以固定不了。它也有多个问题
2> 您正试图在 else 之后进行调节。那是不正确的。如果你想检查,你可以像这样通过多个 if
语句来检查。
if (userNumber > randomNumber)
{
System.out.println("Too high, try again.");
}
if (userNumber < randomNumber)
{
System.out.println("Too low, guess again.");
}
if (userNumber == randomNumber)
{
System.out.println("It took you " + "of guesses.");
}
3> String guessCount = 1;
guessCount 是字符串,您试图分配整数。这是非法的。