日期:2014-05-20  浏览次数:20597 次

各位大哥大姐进来帮下忙(本人菜鸟)
public   static   void   main   (String[]   args)   {
        Scanner   in   =new   Scanner(System.in);
       
        for(;;)
        {
        BigDecimal   m   =   in.nextBigDecimal();
        int   n   =   in.nextInt();
       
        System.out.println(m);
        System.out.println   (n);
       
                }
}
实在是不知道什么原因导致最后输出的M和N     都变成了M的值   ,哪位给个解决方法,小弟在这先谢谢了!!

------解决方案--------------------
没有啊~~我出来的都是对的!
------解决方案--------------------
把代码全都贴出来啊,scanner是什么类啊?
------解决方案--------------------
汗!LS
我出来也是对的
输入要回车下
------解决方案--------------------
应该是m,n的值都有吧。
我试了一下,运行时,输入12.01 12.001就会抛出异常,
但是,如果把int n = in.nextInt();和System.out.println (n);
注释掉就可以打出,可见,n是可以取到值的是有影响的。
但是运行时输入
12.01
12
就可以输出
12.01
12
但是输入
12.01
12.001
就抛出异常。
所以,这个程序,先取m值,再取n值,n取的是
int类型,如果不是int类型就抛异常。
但我也不明白怎么回事,高手解释一下。谢谢

------解决方案--------------------
in都已在循环外定义了
楼主您还想怎么样