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

input.hasNextInt() 如何在循环里使用这个

2012-04-04 
input.hasNextInt() 怎么在循环里使用这个Scanner input new Scanner(System.in)System.out.println(

input.hasNextInt() 怎么在循环里使用这个
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数");
int age = 0;
while (true) {
if (input.hasNextInt() == true) {
age = input.nextInt();
System.out.println("true");
} else {
System.out.println("false");
}
}

这段代码在输入非数字是就死循环,求解?

[解决办法]

Java code
public class Test {    public static void main(String args[]){        Scanner input = new Scanner(System.in);        System.out.println("请输入一个数");//1.输入非数字abc        int age = 0;        while (true) {        if (input.hasNextInt() == true) {/2./检查是否是数字,结果不是,跳过if语句块        age = input.nextInt();        System.out.println("true");        }else {//3.执行打印操作,关键问题来,系统把false当做System.in读进来了,所以就跟1一样咯        System.out.println("false");        }        }    }}
[解决办法]
Java code
import java.util.Scanner;public class Test {    public static void main(String args[]){        Scanner input = new Scanner(System.in);        System.out.println("请输入一个数");        int age = 0;        while (true) {        if (input.hasNextInt() == true) {System.out.println(input.hasNextInt());        age = input.nextInt();        }else {System.out.println(input.hasNextInt());//是这个变成false,所以死循环,Scaner是获取键盘输入吧。。        }        }    }}
[解决办法]
老问题,要是放在外面的话,因为Scanner有缓存,它会认为你一直在输入刚才输入的非数字。

探讨

昨晚请教了高人,把Scanner input=new Scanner(System.in);放到while循环里就没事了??谢谢

[解决办法]
还有,问题解决了,就尽快结贴吧。。。

热点排行