2017-04-26 62 views
-3

我是新來的Java和我試圖寫一個簡單的程序,詢問主題名稱和計算總和平均,問題是我想採取用戶輸入爲字符串數組並打印用戶輸入的主題名稱。以用戶輸入數組的字符串和增加字符串數組輸入

這裏只是寫在這裏的陣列輸入的問題我的程序IM:

public class SimpleSamples { 

    public static void main(String[] args) { 

     Scanner userInput = new Scanner(System.in); 
     String[] subjects = new String[5]; 

     int subjectCount = 0; 

     String subjectsName; 

     if(subjectCount <= 5) 
     { 
      subjectsName = userInput.nextLine(); 
      subjects[subjectCount] = subjectsName; 
      subjectCount+=1; 
     } 
    } 
} 

但其只打印一個主題和程序停止,它根本不增加數組元素(要輸入科目)。

回答

2
if(subjectCount <= 5){ 
    ... 
    } 

被執行一次。這應該是一個循環,你應該4,如果你想從0執行它5時間subjectCount開始更換5

while(subjectCount <= 4){ 
    ... 
} 

或更加簡單易讀使用循環的迭代次數已知:

for (int subjectCount=0; subjectCount<subjects.length; subjectCount++){ 
     subjects[subjectCount] = userInput.nextLine(); 
} 
+0

感謝,哎呦,這是一個愚蠢的錯誤我怎麼能沒有注意到! – Asad

+0

歡迎您:) – davidxxx

2

您正在使用if條件,它只是檢查條件,如果true表示執行代碼。這就是爲什麼它只執行一次。

這裏你應該使用循環像while,for。和總是數組索引開始所以改變條件如

while(subjectCount < 5) 

有關打印的5倍。

更新代碼

public class SimpleSamples { 

public static void main(String[] args) { 

    Scanner userInput = new Scanner(System.in); 
    String[] subjects = new String[5]; 

    int subjectCount = 0; 

    String subjectsName; 

    while(subjectCount < 5) 
    { 
     subjectsName = userInput.nextLine(); 
     subjects[subjectCount] = subjectsName; 
     subjectCount+=1; 
    } 


} 
} 
0

做以下修改

public class SimpleSamples { 

    public static void main(String[] args) { 

     Scanner userInput = new Scanner(System.in); 
     String[] subjects = new String[5]; 

     int subjectCount = 0; 

     String subjectsName; 

for(int i=0;i<subjects.size();i++){ 
if(subjectCount <= 5) 
     { 
      subjectsName = userInput.nextLine(); 
      subjects[subjectCount] = subjectsName; 
      subjectCount+=1; 
     } 
} 

    } 
}