import java.util.*;
public class Testing {
public static void main(String[] args) {
Random rand = new Random();
int random = (int)(Math.random() * 3 + 1);
//to see what number to guess
System.out.println(random);
int score = 0;
Scanner input = new Scanner(System.in);
System.out.print("Enter Number: ");
String num = input.nextLine();
int count = 0;
while (count <= 5) {
if (random == 1) {
if (num.equals("one")) {
System.out.println("correct");
score++;
}
else {
System.out.print("Wrong!");
}
}
else if (random == 2) {
if (num.equals("two")) {
System.out.println("correct");
score++;
}
else {
System.out.print("Wrong!");
}
}
else {
if (num.equals("three")) {
System.out.println("correct");
score++;
}
else {
System.out.print("Wrong!");
}
}
count++;
}
System.out.println(score);
}
}
如何制作会询问5个不同的随机数?
在每次好的猜测之后,分数应该增加1。
在每次猜测(好的或坏的)之后,它应该进入另一个随机数?
答案 0 :(得分:0)
要从用户那里读取5个数字,请编写如下代码
public Integer [] read5NumbersFromConsole(Scanner input){
Integer [] inputNumber = new Integer [5];
for(int i =0; i< 5; i++){
System.out.print("Enter Number: ");
inputNumber[i] = input.nextInt();
}
return inputNumber;
}
其余的我留给你实施......
答案 1 :(得分:0)
很奇怪您分配了一个Random
类来不使用它。
你应该使用它,然后写rand.nextInt(3 + 1)
(不包括+1,而不是(int)(Math.random() * 3 + 1)
。
你的while循环可以通过for循环简化:for (int count = 0; count < 5; ++count)
。注意,将变量初始化为 0
并转到 <= 5
将导致 6 次迭代,而不是5次。< / p>
在你的情况下你不需要创建一个包含5个数字的数组,你可以在循环中为每个猜测生成一个新的随机数。
您还可以使用1 to "one", 2 to "two", etc.
最后,我会这样写:
import java.util.HashMap;
import java.util.Random;
import java.util.Scanner;
public class Testing {
public static void main(String[] args) {
int score = 0;
Random rand = new Random();
Scanner input = new Scanner(System.in);
HashMap<Integer, String> intToString = new HashMap<>();
intToString.put(1, "one");
intToString.put(2, "two");
intToString.put(3, "three");
for (int count = 0; count < 5; ++count) {
// "nextInt" is exclusive! Doing +1 converts [0;2] to [1;3]
int random = rand.nextInt(3 + 1);
// To see what number to guess
System.out.println(random);
String num = input.nextLine();
// Get the string representation
String response = intToString.get(random);
if (num.equals(response)) {
System.out.println("correct");
++score;
} else {
System.out.println("Wrong!");
}
}
System.out.println(score);
}
}
如果您使用的是Java 1.7+,则可以使用ThreadLocalRandom.current()
而不是Random
。 Related post here