2014-01-16 117 views
2

我是Java新手,我正在嘗試爲用戶輸入一定數量的整數,然後檢索這些整數並將其打印回來。Java初學者作業

只有輸入1個整數纔有效。否則,它終止。

import java.util.Scanner; 
public class Assignment4 { 

    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     System.out.println("Enter the Number of Numbers"); 
     int totalNumbers = scan.nextInt(); 
     int[] numbers = new int[totalNumbers]; 
     for(int i = 0;i == (totalNumbers-1); i++){ 
      System.out.println("Enter the Next Number"); 
      numbers[i] = scan.nextInt(); 
     } 


     for(int i = 0;i == (totalNumbers-1); i++){ 
      System.out.println(numbers[i]); 
     } 

    } 
} 

回答

7

你的循環條件是你的問題。它只會接受一個輸入。條件:

for(int i = 0; i == (totalNumbers-1); i++){ 

將終止當i != (totalNumbers - 1)。你for循環應該讀如下所示:

初始化一個新的變量i爲零,那麼當i等於 「totalNumbers - 1」,做下面的代碼塊,然後加1我

你可能想:

for(int i = 0; i <= (totalNumbers-1); i++){ 

這可以解讀爲:

初始化一個新的變量到零,然後一邊小於或等於 「totalNumbers - 1」,執行下面的代碼塊,然後 由1

遞增
+0

謝謝!修復工作。這是一個愚蠢的錯誤。 –

+0

沒問題,很高興幫助 – Kon

-1

我從你的代碼,瞭解什麼是您的罪魁禍首是以下行:

for(int i = 0;i == (totalNumbers-1); i++){ 
     System.out.println("Enter the Next Number"); 
     numbers[i] = scan.nextInt(); 
} 

循環將不會執行,除非和直到你有totalNumbers = 1。只有這樣,你纔會有i = totalNumbers - 1 = (1 -1) = 0,它滿足循環中的條件i == (totalNumbers - 1)。這就是您只能輸入1個數字的原因;如果您的totalNumbers值不是1,則循環將不會執行,並且程序將終止。

您編寫for循環條件的方式不正確。相反,你應該這樣寫:

for(int i = 0;i <= (totalNumbers-1); i++){ 
    //do your work here 
} 

以上述方式在你的問題的兩個循環中編寫for循環。

+0

背後我得到downvote的原因是什麼? :(:(我的解決方案似乎是確定。 –

1

有你的代碼中有兩處錯誤,兩者都涉及到循環語句,

通過

for(int i = 0;i <= (totalNumbers-1); i++) 

取代第一循環語句和

for(int i = 0;i <= (totalNumbers-1); i++) 

關於更換第二循環語句。

+0

這是一樣的@Kons回答 – micstr

+0

這樣?發生了什麼? – user3454581

+0

看評論中Kons答案。它幫助用戶陝...但用戶從來沒有接受了答案。嘗試在Shaans評論最初的問題,因爲他會收到一封電子郵件並且可能會選擇你的答案,我會提高你的答案,因爲我知道當你開始接觸SO時獲得牽引力是什麼樣的 – micstr

0
import java.util.Scanner; 
public class Assignment4 { 

public static void main(String[] args) { 

    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter the Number of Numbers"); 
    int totalNumbers = scan.nextInt(); 
    int[] numbers = new int[totalNumbers]; 
    for(int i = 0;i <= (totalNumbers-1); i++){ //changed the loop's condition 
     System.out.println("Enter the Next Number"); 
     numbers[i] = scan.nextInt(); 
    } 


    for(int i = 0;i <= (totalNumbers-1); i++){ //changed the condition in the 
     System.out.println(numbers[i]); 
    } 

} 

}

你只輸入1號的原因是需要輸入數字,直到我值小於或等於您在已經給了loop.You條件到(totalNumbers-1) 但如果我是你,我會使用**for(int i = 0;i < totalNumbers1; i++)**只是在說