2015-09-10 16 views
0

我只在大學學習java的3周時間,所以假設我什麼都不知道,因爲任何提示都可以幫助。無論如何,我試圖做這個問題:生成隨機等級並正確標記

「編寫一個Java程序,生成一個介於0到100之間的隨機數(代表一個等級)。然後程序在不同的行上打印出生成的等級,然後打印出對應的字母等級(A,B,C,D,F)使用下面的標準比例。正確標記您的輸出,並使用轉義字符來排列標籤後面的輸出。

90 – 100: A 
80 – 89: B 
70 – 79: C 
60 – 69: D 
00 – 59: F 

我到目前爲止是這樣的:

import java.util.*; 
public class Practice_3_2 
{ 

    public static void main (String[] args) 
    { 

     final int max = 100; 
     int answer, grade; 
     int A = 90; 

     Random generator = new Random(); // random number generator object 

     answer = generator.nextInt(max) + 1; 

     if (grade >= A); { 
      System.out.println ("That grade is an A."); 
     } 
    } 
} 

我進入低於90一個檔次,但if語句反正變爲真。

+0

我很困惑; 「Scanner」在這方面扮演什麼角色? – ddsnowboard

+0

啊,這是我老師留下的例子中剩下的代碼,我會把它說出來。 – royal422

+2

您的'if'語句不起作用,因爲在'{'之前有';'。 「if」語句之前的行使用剛剛刪除的「scan」。 – Andreas

回答

1

您不需要掃描儀。要求中沒有要求用戶輸入。

要生成數101間0,你需要:

answer = generator.nextInt(max + 1); 

一旦你已經產生你的隨機的分數,你需要弄清楚在何處適合的檔次,上規模。最簡單的方法是使用一系列if else語句。

System.out.println("Score: " + answer); 
int A = 90; 
int B = 80; 
int C = 70; 
int D = 60; 
System.out.print("Grade: "); 
if(answer >= A) { 
    System.out.println("A"); 
} else if(answer >= B) { 
    System.out.println("B"); 
} else if(answer >= C) { 

    ... 

} else { 
    System.out.println("F"); 
} 
+0

這方面的要求不清楚。已添加標籤。 – Jason

+0

謝謝,這幫了我很多。 – royal422

0

我認爲你是在正確的軌道上,除了一些事情。

  1. answer = generator.nextInt(max) + 1;將不包括零
  2. 不需要掃描儀,因爲它會產生一個隨機數。

試試這個:

Random gen = new Random(); 

    int grade= gen.nextInt(101); 
    if(90 <= grade && grade <= 100){ 
     System.out.println("The grade is A"); 

    }else if(80 <= grade && grade <= 89){ 
     System.out.println("The grade is B"); 

    }else if() //and so forth 
+0

哦,對,我的錯誤。讓我編輯一下 – jmcg

+0

檢查上限過大。 – Andreas