2013-10-05 105 views
1

我無法計算用戶將它們連接起來的整數數量。在for循環中掃描輸入

int sum = 0, counter; 

System.out.println("enter between 1 to 3 digits:"); 
counter = scan.nextInt(); 
for(int i=0;i<counter;i++){ 
    sum = sum + scan.nextInt(); 
} 
System.out.println(sum); 

這不僅停止的一次,因爲nextInt但我不能想出一個辦法來計算實際用戶有多少整數投入。

例如:

1至3位數之間輸入:2 3 3

總和= 8

+1

我會用scan.nextLine()讀取整個文本行,然後.split (「」)來獲得每個數字並加起來。 –

+0

我看到的一個直接問題是,你正在循環計數,這是用戶輸入的第一個數字......這是沒有意義的。 – Marconius

回答

0

代替使用

counter = scan.nextInt(); 
for(int i=0;i<counter;i++){ 
    sum = sum + scan.nextInt(); 
} 

的可以使用

int[] input = new int[3]; //creates array on intergers 
while(scan.hasNext()) //loops while there is still input left 
{ 
    input[counter] = Interger.parseInt(scan.next()); //sets input[counter] to the next integer (separated by a space) 
    counter++; //increments counter 
} 
for(int i = 0; i < counter; i++) //loops <amount of integers put in> times 
{ 
    sum += input[i]; //adds input[i] to the total 
} 
0

因此,您接受第一個整數輸入但不會將其添加到總和中。你想讓你的第一個整數告訴你用戶想輸入多少個數字?如果是,那麼你的代碼是正確的。

如果您只想添加所有的號碼,那麼你必須做一個小的變化 - 其他情況下

System.out.println("enter between 1 to 3 digits:"); 
String s= scan.nextLine(); 
String ss[] = s.split(" "); 
for (String w:ss) 
    sum = sum + Integer.parseInt(w); 
System.out.println(sum);