2015-02-07 67 views
1

我剛寫了這個基本程序。它從用戶獲取5個值,並將它們全部存儲在一個數組中,並告知最高的數字。Java中的動態數組 - 所以我們可以根據用戶的輸入決定數組的大小

import java.util.Scanner; 

public class HighestNumber { 

    public static void main(String[] args) { 


     Scanner input = new Scanner(System.in); 
     int [] numbers = new int [5]; 
     int max = numbers[0]; 
     System.out.println("Enter " + numbers.length + " numbers:"); 
     for (int i=0; i<numbers.length; i++) { 
      numbers[i] = input.nextInt(); 

      if (numbers[i] > max) { 
       max = numbers[i]; 
      } 

     } 

     System.out.println("The highest number is:" +max); 

    } 

} 

我想取消5個數字的限制,並允許用戶添加他想要的數量。我怎樣才能做到這一點?

感謝您的幫助。 :)

感謝

回答

0

如果用戶知道號碼的提前數(之前他們進入實際人數):

  1. 問他們要多少個號碼輸入用戶:

    System.out.println("How many numbers?"); 
    int numberOfNumbers = input.nextInt(); 
    
  2. 使用,隨着陣列尺寸:

    int[] numbers = new int[numberOfNumbers]; 
    

如果用戶不需要事先知道數字的數量(例如,如果他們應該能夠在最後一個號碼後輸入「stop」),那麼你應該考慮使用List來代替。

+0

真棒!任何其他解決這個問題的方法? ArrayList可以幫助我嗎? – 2015-02-07 01:44:47

+0

非常感謝immibis - 我想我現在可以從這裏拿走它。保持好狀況! :) – 2015-02-07 01:47:28

0

或者,您可以使用ArrayList並繼續添加元素,直到用戶輸入空白行。 Here是關於使用ArrayList的教程。

一些僞代碼可以是:

numbers = new list 
while true 
    line = readLine 
    if line == "" 
    then 
     break 
    else 
     numbers.add(convertToInteger(line)) 
    ... 

這種方法的好處是,用戶不需要即便算上他/她想要多少個數字來輸入。

+0

我真的很感謝你的輸入Adrian ..我會去了解arraylists。 :-) – 2015-02-07 01:56:40

相關問題