2011-03-25 41 views
1
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); 
     } 
    } 
} 

當我嘗試編譯這個我得到一個沒有,如果錯誤,我不能明白爲什麼,因爲我只有一個條件,如果其他正確的後。請幫助,也可以有人解釋這一行answer = generator.nextInt(MAX)+1;爲什麼作者從書中加1?Java程序問題

回答

0
  1. 如果 條件後刪除smeioclon。你不一定非得使用大括號,因爲它只是條件之後的一個陳述。如果你有多於一個,那麼你必須在你的其他條件中包含這些陳述的花括號。

  2. 查找 javadocs中的Random類。

+0

哪個'if'條件?就目前來看,你的回答很模糊。 – 2011-03-25 02:57:33

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。

2

這條線的不必要的分號罪魁禍首:

if (guess==answer); 

刪除分號;它正在終止整個if聲明。

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到它。

+0

愚蠢的我,我甚至沒有抓住,謝謝! – 2011-03-25 02:54:28

+1

它發生在每個人身上。有些工具(如NetBeans IDE)可以指出什麼都不做的分號,在這種情況下可以避免這個問題。 – 2011-03-25 02:56:51

1

你的if語句需要括號,而不是分號。

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之間產生隨機數。

+0

哦對,我忘了它是-1 – 2011-03-25 02:53:49