input:- 1 3 4 7 9 6 -1
output:- 4 6
我正在做的是从列表中打印偶数,每行一个。当遇到-1时,列表结束。以下是我的代码:
Scanner sc=new Scanner(System.in);
for (int i = 0; i <100000000; i++) {
int z=sc.nextInt();
if(z != -1)
{
if(z%2==0)
{
System.out.println(z);
}
}
else
{
System.exit(0);
}
}
此代码用于最大输入,但在我将以下数字作为输入时给出错误。如何删除是这样的:
1234567891011
1234575135480
4357941369468
3246896421457
4356899643456
9753567886447
7545786575675
4675676788975
4523533536642
2412345546756
8678789685674
5632523414215
5435656765786
4676789879674
3562345245356
4675877956734
5452421425445
6758795674562
3421767655359
2124535456560
-1
答案 0 :(得分:2)
你从Scanner.nextInt();
电话中获得了这个例外。
由扫描程序抛出,表示检索到的令牌没有 匹配预期类型的模式,或者令牌不在 预期类型的范围。
抛出exeception因为值很高。 整数MAX_VALUE为2 ^ 31-1,所有值都太高了。
你应该使用长度为MAX_VALUE的2 ^ 63-1。
答案 1 :(得分:2)
InputMismatchException - 如果下一个标记与Integer正则表达式不匹配,或者超出范围。
Integer.MIN_VALUE:-2147483648
Integer.MAX_VALUE:2147483647
而不是int使用long
long z = sc.nextLong();
答案 2 :(得分:0)
int可以容纳的最大值是2147483647。
使用double。