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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯鹏成 中级黑马   /  2014-12-12 22:19  /  1493 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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还是一样,是超出范围了吗,求解答

7 个回复

正序浏览
估计以后也不会遇到这么大的数字吧
回复 使用道具 举报
这要从五百年前说起了,当时还没有java。。。。。。我们人类都是用绳结来计数的,绳子有范围,所以不能记录太大的值
回复 使用道具 举报
输入不匹配。超出了。int.    和long 的范围
回复 使用道具 举报
Honelyboy 发表于 2014-12-12 22:46
你输入的数字太大,超出计算机运算的操作范围了。

大概或许是吧,牵扯到底层了
回复 使用道具 举报
你输入的数字太大,超出计算机运算的操作范围了。
回复 使用道具 举报
zmhlnrs 发表于 2014-12-12 22:36
那个是输入不匹配异常,应该是超出范围了

我也觉得是,不过这样的话怎么改呢
回复 使用道具 举报
那个是输入不匹配异常,应该是超出范围了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马