A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戴振良 黑马帝   /  2012-3-27 16:54  /  1516 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 戴振良 于 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的数字是怎么来的?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马