Java编程:当用户输入不是数字时如何循环要求输入数字?
代码如下:
运行结果如下:
文字版代码如下:
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
double x=0;
boolean b=true;
System.out.println("请输入整数:");
while(b){
try{
x=in.nextDouble();//如果输入的不是数字,则会抛出异常,进去catch语句块
b=false;//如果输入的是数字,则控制循环结束
}
catch(Exception e){
System.out.println("输入错误,请重新输入:");
in.nextLine();//读入回车符,确保循环可以正常进行
}
}
System.out.println("输入的数字为:"+x);
in.close();
}
}
做法就是将Scanner scanner = new Scanner(System.in)放在do里面。
具体改法看下面: import java.util.Scanner; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double i = Math.random() * 99 + 1;// Math.random()会自动产生一个0.0-1.0的双精度随机数 int iRandom = (int) i; int iEnter = 0;//将iEnter初始化 System.out.println("猜数字游戏。\n系统已选定一个1—100之间的整数,请猜测它:"); do { Scanner scanner = new Scanner(System.in);//这句从原先的外面放里面 //下面if语句判断是否错误输入 if (!scanner.hasNextInt()) { System.out.println("输入错误,请输入整数:"); continue; } iEnter = scanner.nextInt(); if (iEnter < 1 || iEnter > 100) { System.out.println("输入越界,请输入1-100之间的整数:"); continue; } if (iEnter < iRandom) { System.out.println("猜小了,请继续猜测:"); } if (iEnter > iRandom) { System.out.println("猜大了,请继续猜测:"); } } while (iEnter != iRandom); System.out.println("Great!You guess the right number."); } }
补充:《JAVA编程(第5版)(英文影印版)》为入门级程序员提供了用JAVA编程语言开发应用程序的方法。JAVA语言深受专业程序员青睐,因为它可以用来制造在视觉上有趣的图形用户界面(GUI)和互联网应用程序。