2014-05-01 42 views
-2

我使用用戶提供的整數創建一個數組。但是,我只需要正整數。如何檢查用戶輸入的整數以查看它是否爲正數?如何獲得數組中只有正整數?

public static void main(String[] args) 
{ 
    Scanner input = new Scanner(System.in); 
    Integer array [] = new Integer[10]; 
    int userChoice; 
    boolean loop = true; 

    // to loop through the switch and show userChoice to user until chose to 
    // quit 

    System.out.println("Please enter the 10 positive integers to be represented in the BST:"); 

    for (int i = 0 ; i < array.length; i++) 
     array[i] = input.nextInt(); 
} 

我試着做if (input.nextInt() > 0)for環內,但該程序只是凍結,當我按enter鍵沒有做任何事情。還嘗試將for循環放入do while (input.nextInt() > 0),但我仍遇到同樣的問題。

+4

您錯過了這段代碼的基本概念。應該工作,灣這段代碼是如何工作的。與其懇求某人解決您的問題,花一些時間試圖瞭解這些控制結構的功能,您正在嘗試做什麼以及爲什麼它不起作用。將您的解決方案編碼解碼出來,然後回到編寫代碼。如果我們只是解決你的問題,它不會幫助你,因爲你不明白爲什麼它能解決你的問題。 – JamesENL

+0

聽起來不錯,但沒有人在這裏乞討。 – user3478869

+0

你說你嘗試在for循環中插入一個if,但是程序凍結了。這實際上傾向於如何解決這個問題。你需要弄清楚它爲什麼會凍結和凍結在哪裏。 – JamesENL

回答

1

你可以這樣做

for (int i = 0 ; i < array.length; i++) { 
    int check = input.nextInt(); 
    if (check > 0) 
     array[i] = check; 
    else { 
     System.out.println("Only positives, try again."); 
     i--; 
    } 
} 

但是一些簡單的,你可以更多的創造性,我建議你真正嘗試。