你输入,或者不输入,我就在那里,不进不退!

今天在学习异常机制时,我突然想到了C语言中的数据处理机制,于是乎,我就做了一个实验,以期洞悉Java中的数据处理机制。直接上代码吧:
[color=blue]public class ExceptionTest {

/**
* 主函数
*/
public static void main(String[] args) {

//创建一个ExcptionTest对象
ExceptionTest et = new ExceptionTest();

//创建一个Scanner对象
Scanner sc = new Scanner(System.in);

//从控制台得到一个输入(整数)
System.out.println("请输入一个数字:");
int num1 = sc.nextInt();

//打印得到的数字
System.out.println("输入的数字是:" + num1);

//再得到另外一个数字
System.out.println("请输入另一个数字:");
int num2 = sc.nextInt();

//打印结果
System.out.println("你输入了:" + num2);

}//End method main

}//End class ExcptionTest[/color]
接下来就是测试阶段了,首先,我分两次输入,当然是没有问题的;第二次,输入了12 12(注意,中间有空格哦),这次的结果是:

[color=green]请输入一个数字:
12 12
输入的数字是:12
请输入另一个数字:
你输入了:12[/color][/color]

也就是,只要输入一次的数据就行;接着,第三组测试开始:12@12:

[color=green]请输入一个数字:
12@12[/color][color=red]Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at com.attt.ExceptionStudy20110417.ExceptionTest.main(ExceptionTest.java:24)[/color]
对了,毫无意外的出错了!最后一个测试是:12 @12(这个结果比较非主流!):
[color=green]请输入一个数字:
12 @12
输入的数字是:12
请输入另一个数字:[/color]
[color=red]Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at com.attt.ExceptionStudy20110417.ExceptionTest.main(ExceptionTest.java:31)[/color]
然后就此剧终了!
是的,很简单就是不匹配而已,而已!我分别讲一下我在不同测试时所思考的吧:第一个就无需赘述了;第二种情况,根据我在C中学到的一点知识看来,应该是客户端输入12 12时,数据就都存储到了缓存中,然后在第一次取的时候,直接拿出12,当到达第二个nextInt()时,由于还有未处理的数据,因此便直接拿出来了;第三个测试由于没有间隔符(原因不明),把这一串输入当成一个,因此出错!第四个和第二个类似,只是在拿出数据时,发现不是Int型的,于是报错!
由于,学识实在太有限,并不是十分清楚到底发生了神马,只有把它晒出来,希望南来北往客能够指点指点!!! :arrow:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值