2014-01-15 32 views
0

所以我一直試圖讓這個SOP語句讀入數組,但我似乎無法得到它。我是一個完整的Java新手,非常感謝。如何讓這個輸入被放入數組?

這是構造函數,我想有在SOP聲明。

public class QuizScore 
{ 
private int qs[]; 
public QuizScore(int num) 
{ 
    for(int i=0;i<num;i++) 
    { 
     System.out.println("Enter in your scores: "); 
     int[] qs=new int[num]; 
    } 

這是主要的,如果它是有用的

public static void main(String args[]) 
{ 
    EasyReader d = new EasyReader(); 
    System.out.println("How many numbers are in your array?"); 
    int num = d.readInt(); 
    new QuizScore(num); 
} 

}

回答

0

我猜你EasyReader類主要以某種方式從輸入流走的用戶輸入。 java中另一個易於使用的類是Scanner,它可讓您從輸入流獲取用戶輸入。

你必須初始化數組,然後才能使用它,你循環之前,並得到了用戶的輸入:

qs = new int[num]; 

接下來,讓個人得分的用戶輸入,並將它們排列在適當的存儲指數。

qs[i] = scan.nextInt(); 

編輯:儘量選用this實施EasyReader基於OP的查詢。下面是完整的類:

public class QuizScore { 
    private int qs[]; 
    static EasyReader console = new EasyReader(); 

    public QuizScore(int num) { 

     qs = new int[num]; 
     for (int i = 0; i < num; i++) { 
      System.out.println("Enter in your scores: "); 
      try { 
       qs[i] = console.readInt(); 
      } catch (Exception ex) { 
       // console.ignore(); 
      } 
     } 
     console.close(); 
    } 

    public static void main(String args[]) { 
     System.out.println("How many numbers are in your array?"); 
     int num = console.readInt(); 
     new QuizScore(num); 
    } 

} 

通知我捕捉異常,當出現任何錯誤忽略用戶的輸入 - 特別是當用戶輸入一個非整數值。 - 由於EasyReader似乎消耗無效輸入,因此不再有效。

+0

如果我的學校沒有使用EasyReader教授Java,那麼這將會很有幫助,所以我必須通過它學習它。 – user3030052

+0

@ user3030052好的,我嘗試使用EasyReader的[this](http://www.cs.duke.edu/csed/jett/workshop2/code/EasyReader.java)實現,請參閱上面的編輯代碼 – PopoFibo

+1

謝謝許多 – user3030052

0

敬請改變代碼如下。

int[] qs=new int[num]; 

for(int i=0;i<num;i++) 
{ 
    System.out.println("Enter in your scores: "); 
    qs[i] = num; 
} 
+0

我把它放進去,但是在輸入了多少個整數之後,它給了我很多「輸入你的分數」,並且不會讓我輸入數字。 – user3030052

0

試試這個

public class QuizScore 
      { 
      private int qs[]; 
      public QuizScore(int num) 
      { 
       int[] qs=new int[num]; 
       for(int i=0;i<num;i++) 
       { 
        System.out.println("Enter in your scores: "); 

        qs[i]=i;//putting values in array; 
       } 
      } 
+1

與你的解決方案,數組將重新初始化for循環的每個增量...取出循環int [] qs = new int [num]; – ylerjen

+0

@ Miam84謝謝!提醒編輯。 –

+0

我把它放進去,但是在輸入了多少個整數後,它給了我很多「輸入你的分數」,並且不會讓我輸入數字。 – user3030052

0
System.out.println("Enter in your scores: "); 
int[] qs=new int[num]; 
Scanner inputScores = new Scanner(System.in); 
for(int i=0;i<num;i++) 
    { 
     qs[i] = inputScores.nextInt(); 
    }