黑马程序员技术交流社区
标题:
求原因
[打印本页]
作者:
yangyinhui
时间:
2013-4-3 19:25
标题:
求原因
本帖最后由 yangyinhui 于 2013-4-4 17:35 编辑
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//int i= scanner.nextInt();输入2321312321432134会抛异常
String line=scanner.nextLine();//输入2321312321432134不会抛异常
scanner.close();
//System.out.println(i);
System.out.println(line);
}}
为什么一个会抛异常一个不会,输入的都是很大的数字为什么用String就不会抛异常?新手求解释?
作者:
黑马-郑玉元
时间:
2013-4-3 19:32
一个是字符串一个是int型的数据!.nextInt()是从键盘输入一个int型数据,它当然是有范围的,nextLine()是从键盘读取一行字符串!
作者:
谢达
时间:
2013-4-3 19:37
//int i= scanner.nextInt();输入2321312321432134会抛异常.这里调用netInt()输入的超过了int范围-2147483648~2147483647,所以会报异常
作者:
ㄨ____陌生
时间:
2013-4-3 19:54
int类型是有范围控制的, int为一种数据类型,范围[-2^31 , 2^31 -1] 即 [-2147483648,2147483647]。会抛出异常
String 是字符串 不管多大的数字都可以看成字符串,不会抛出异常,定义变量。
作者:
庞立森
时间:
2013-4-3 19:58
第一,int的数值类型没有那么大,你输入那么多数字肯定不对
第二,你用String标示的,你输入的就不是int类型的数字了,而是字符串了,你随便输入多少都可以
你不要以为都是阿拉伯数字就一定就是int类型的
作者:
yangyinhui
时间:
2013-4-3 20:00
明白了,原来是nextLine()是从键盘读取一行字符串,谢谢
作者:
打工人
时间:
2013-4-4 16:35
若还有问题,继续追问; 没有的话,尽量及时将帖子分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2