首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-12-19 
你输入,或者不输入,我就在那里,不进不退!今天在学习异常机制时,我突然想到了C语言中的数据处理机制,于是乎

你输入,或者不输入,我就在那里,不进不退!
   今天在学习异常机制时,我突然想到了C语言中的数据处理机制,于是乎,我就做了一个实验,以期洞悉Java中的数据处理机制。直接上代码吧:
    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
   接下来就是测试阶段了,首先,我分两次输入,当然是没有问题的;第二次,输入了12 12(注意,中间有空格哦),这次的结果是:

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

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

请输入一个数字:
12@12Exception 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)
    对了,毫无意外的出错了!最后一个测试是:12 @12(这个结果比较非主流!):
请输入一个数字:
12 @12
输入的数字是:12
请输入另一个数字:
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)
   然后就此剧终了!
    是的,很简单就是不匹配而已,而已!我分别讲一下我在不同测试时所思考的吧:第一个就无需赘述了;第二种情况,根据我在C中学到的一点知识看来,应该是客户端输入12 12时,数据就都存储到了缓存中,然后在第一次取的时候,直接拿出12,当到达第二个nextInt()时,由于还有未处理的数据,因此便直接拿出来了;第三个测试由于没有间隔符(原因不明),把这一串输入当成一个,因此出错!第四个和第二个类似,只是在拿出数据时,发现不是Int型的,于是报错!
    由于,学识实在太有限,并不是十分清楚到底发生了神马,只有把它晒出来,希望南来北往客能够指点指点!!!

热点排行