import java.util.*;
public class Guess
{
public static void main (String[] args)
{
final int MAX=10;
int answer, guess;
Scanner scan = new Scanner(System.in);
Random generator = new Random();
answer = generator.nextInt(MAX)+1;
System.out.print ("I'm thinking of a number between 1 and " + MAX + ".Guess what it is: ");
guess=scan.nextInt();
if (guess==answer);
System.out.println (" You got it!");
else
{
System.out.println("That is not correct");
System.out.println("The correct answer is"+ answer);
}
}
}
当我尝试编译这个时,我得到一个没有错误的其他,我不明白为什么因为我只有一个if条件而其他就在if之后。请帮助,也可以有人解释这一行answer = generator.nextInt(MAX)+1;
为什么书中的作者添加了1?
答案 0 :(得分:4)
你有错误。
if (guess == answer);
System.out.println(" You got it!");
else {
System.out.println("That is not correct");
System.out.println("The correct answer is" + answer);
}
应该是
if (guess == answer) {
System.out.println(" You got it!");
} else {
System.out.println("That is not correct");
System.out.println("The correct answer is" + answer);
}
作者添加了1以确保该值至少为1. nextInt(MAX)
将0返回到MAX-1。
答案 1 :(得分:2)
这条线是罪魁祸首:
if (guess==answer);
删除分号;它终止了整个if
语句。
答案 2 :(得分:2)
if (guess==answer); // looks like you threw an extra semicolon in here
System.out.println (" You got it!");
只需删除分号就可以了。
请帮助,也可以 解释这一行答案= generator.nextInt(MAX)+1;为什么呢 这本书的作者添加了1?
generator.nextInt(MAX)
会生成一个介于0和MAX
之间的随机数,作者希望它至少为1,所以他加了1。
答案 3 :(得分:1)
你这里有一个不必要的分号
if (guess==answer);
答案 4 :(得分:1)
你的if语句需要括号,而不是分号。
答案 5 :(得分:1)
if语句应如下所示:
if (guess==answer) {
System.out.println (" You got it!");
} else
{
System.out.println("That is not correct");
System.out.println("The correct answer is"+ answer);
}
随机值递增,因为随机生成器创建0到MAX-1之间的随机数。
答案 6 :(得分:0)
if后取下玷污 条件。你不一定要有花括号,因为它只是条件之后的一个语句。如果你有多个,那么你必须在你的其他条件中包含大括号的大括号。
查找中的Random类 Javadoc中。