2013-10-05 69 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);