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有缓存,它会认为你一直在输入刚才输入的非数字。
[解决办法]
还有,问题解决了,就尽快结贴吧。。。