本帖最后由 戴振良 于 2012-3-28 01:10 编辑
从屏幕输入123,则把1,2,3进行相加,等6
输入567,则把5,6,7进行相加,等18
代码如下:
import java.util.Vector;
import java.util.Enumeration;
public class Test03
{
public static void main(String[] args)
{
Vector v = new Vector();
Enumeration e;
int ch=0;
int intObj=0;
while(true)
{
try{ch = System.in.read();}catch(Exception ex){ex.printStackTrace();}//从输入流读取一个字节的内容保存到ch
switch(ch)
{
case '\r':break; //如果读取到的是回车符,则不处理
case '\n': //如果读取到的是换行符,则:
e = v.elements(); //返回v集合中的元素的枚举
int sum = 0;
while(e.hasMoreElements()) //判断枚举里是否还有元素
{
intObj = ((Integer)e.nextElement()).intValue(); //取出枚举里的一个元素并转化为int值。
System.out.print(intObj + ", "); //打印出来的int值
sum += intObj; //把所有的把所有取出来的int值求和
}
System.out.println();
System.out.println("相加的结果为:" + sum);
default: //如果读取到的是回车符、换行符以外的数据,则:
v.addElement(new Integer(ch - '0')); //把这个数据包装成Integer,并添加到v集合里去。
}
}
}
}
这是我输两次12的运行结果(红色字是运行结果):
第一次:
1, 2,
相加的结果为:3
第二次:
1, 2, -38, 1, 2,
相加的结果为:-32
问题,第二次输入12的时候,那个-38的数字是怎么来的? |