具体代码如下,结果陷入了死循环!请问该如何修改?
package com.wrx.six;
import java.util.*;
public class Test { /**
* 输入限制为int数字,不是int数字重新输入
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
while (true){
try{
System.out.println("请输入一个整数:");
int num=input.nextInt();
break;
}
catch(InputMismatchException e){
System.out.println("必须输入整数!请重新输入:");
}
}
}
}
package com.wrx.six;
import java.util.*;
public class Test { /**
* 输入限制为int数字,不是int数字重新输入
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
while (true){
try{
System.out.println("请输入一个整数:");
int num=input.nextInt();
break;
}
catch(InputMismatchException e){
System.out.println("必须输入整数!请重新输入:");
}
}
}
}
解决方案 »
- 单向链表,删除所有最小元素
- java 线程并发问题提问,向各位高手专家请教
- 程序编译不通过,帮忙看看吧
- 如何使ant编译后的.log仅有Warning或error
- 大家来说说能把java工程编译成一个exe执行文件的软件
- 怎么用java打印这些图?
- java连接sqlserver2005时后面加载出现了问题
- 我从网上下载了一些*.jar文件,如何把它加到JBuilder中???
- 谁有JCreator Pro2.5的注册码
- 字符串"2002-03-20 10:08:30"转换为日期型格式2002-03-20 10:08:30后。。。。。。。。。急!
- java while循环问题
- 多线程环境下进行用户在线数量统计(求一个大概实现思路)
import java.util.InputMismatchException;
import java.util.Scanner;public class Test { /**
* 输入限制为int数字,不是int数字重新输入
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int num = 0;
while (num == 0) {
try {
System.out.println("请输入一个整数:");
num = input.nextInt();
} catch (InputMismatchException e) {
System.out.println("必须输入整数!请重新输入:");
input.nextLine(); // 吃掉回车
}
}
}
}
要读取这个整数,必须是输入一个整数,然后再按下回来才能读取。
input.nextInt()只是读取了整数,但是回车还没有读取,所以用此句把回车吃掉