java小问题~~在线等

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:02:48
我写的代码是这样的。可是不知道怎么弄得出错了,高手指点下,多谢了!!!

import java.io.*;
import java.util.*;
public class Test{
public static void main (String args[]) {
int s=0;
ArrayList <Integer>aList=new ArrayList<Integer>();
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
aList.add(sc.nextInt());
for(int i=1;i<aList.size();i++){ s=s+aList.get(i);
}
}
System.out.println(s);
}//end of the method main(String args[])
}

中间累加的处理好像有点问题:
程序的处理逻辑是:
将第一个数字,
再加上第一个、第二个的和,
再加上第一个、第二个、第三个的和...

擅自主张,改了一下while循环:
while (sc.hasNextInt()) {
    s = s + sc.nextInt();
}

补下:如果你要累加的数在控制台中输入完后,可再输入exit来结束,,就会显示你想要的结果。
==================================
不知道你问的是什么,是所加的结果只有后面的
数,,第一个数没有相加还是其它问题,,,

for(int i=0;i<aList.size();i++){ s=s+aList.get(i);
}

将i=1 =====>>改为i=0,你其它没有错,,你循环的是数组,第一个数在数组中为aList.get(0)

结果就是累加了。。。

while(sc.hasNextInt())因为这句,程序会把你输入的加入到List中,但也会无限等待下去.
应该添加一条语句,使程序能够退出循环,比如aList.size()<10 break;之类的.

hasNextInt()会让程序等待你再输入一组数字

你的题是什么?
你写的数组里面只有长度,好象还没有赋值进去的