黑马程序员技术交流社区

标题: 如题求解惑 [打印本页]

作者: 侯鹏成    时间: 2014-12-12 22:19
标题: 如题求解惑
import java.util.Scanner;
class Hanshu
{
        public static void main(String[] args)
        {
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入数字");
                int x=sc.nextInt();
                //int x=0;
                int y=0;
                if (x>0)
                {
                        y=x+3;
                        System.out.println(y);
                }
                else if (x==0)
                {
                        y=0;
                        System.out.println(y);
                }
                else
                        {
                                y=x*x-2;
                                System.out.println(y);
                        }
        }
}


为什么输入的数字大了就不能正确运行呢,把int换成long还是一样,是超出范围了吗,求解答

作者: zmhlnrs    时间: 2014-12-12 22:36
那个是输入不匹配异常,应该是超出范围了
作者: 侯鹏成    时间: 2014-12-12 22:46
zmhlnrs 发表于 2014-12-12 22:36
那个是输入不匹配异常,应该是超出范围了

我也觉得是,不过这样的话怎么改呢
作者: Honelyboy    时间: 2014-12-12 22:46
你输入的数字太大,超出计算机运算的操作范围了。
作者: 侯鹏成    时间: 2014-12-12 22:53
Honelyboy 发表于 2014-12-12 22:46
你输入的数字太大,超出计算机运算的操作范围了。

大概或许是吧,牵扯到底层了
作者: 姿_`态    时间: 2014-12-12 23:02
输入不匹配。超出了。int.    和long 的范围
作者: 祁祯祥    时间: 2014-12-12 23:28
这要从五百年前说起了,当时还没有java。。。。。。我们人类都是用绳结来计数的,绳子有范围,所以不能记录太大的值
作者: 農邨尛夥兒    时间: 2014-12-12 23:32
估计以后也不会遇到这么大的数字吧




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