读书人

求高手解答一个Scanner的怪题,该如何解

发布时间: 2012-02-16 21:30:36 作者: rapoo

求高手解答一个Scanner的怪题
代码如下

Java code
package com;import java.util.Scanner;public class Test1 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while (true) {            try {                int score = 0;                score = sc.nextInt();            } catch (Exception e) {                System.out.println("输入的不是一个整数");                continue;            }        }    }}

当输入的是数字的时候,一切正常,可以重复输入数字
一旦输入字符串,将会死循环输出
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
输入的不是一个整数
根本没输入的机会,求高手解答,
另外如果把Scanner的创建放到循环里面,输入字符串就不会出现问题了。

[解决办法]
Java code
import java.util.Scanner;public class Test1 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while (true) {            try {                int score = 0;                score = sc.nextInt();            } catch (Exception e) {                System.out.println("输入的不是一个整数");                String temp = sc.next();//加上这句,让把输入的非数字读进去                continue;            }        }    }} 

读书人网 >J2SE开发

热点推荐