黑马程序员技术交流社区

标题: 一道关于求和问题 [打印本页]

作者: 戴振良    时间: 2012-3-27 16:54
标题: 一道关于求和问题
本帖最后由 戴振良 于 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的数字是怎么来的?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2