呵呵,这个问题问得好啊,喜欢思考就好,在工作中有时候也会处理一些数据,像这种判断数字的方法很常用。我前几天在工作中就遇到类似问题,我解决了,其实也很简单,我们java提供了正则表达式,如果你想到这点就解决了,我看了你的代码,我加了点东西,已经调试成功,你对比看看,以后遇到问题多想想,多问问。
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int number=-1;//先将number初始化
Pattern pattern = Pattern.compile("[0-9]*");//限定输入的必须是数字
do{
System.out.println("1.客户信息");
System.out.println("2.真情回馈");
System.out.print("请选择:");
String str=input.nextLine();//用nextLine()方法来统一接受,要取到数字转换就行了
if(pattern.matcher(str).matches()){//如果输入的是数字就执行
number=Integer.parseInt(str);
}else{
System.out.println("你输入的不是数字,请重新输入...");
}
if(number==1){
System.out.println("进入客户信息");
System.out.println("*******************************************");
}else if(number==2){
System.out.println("进入真情回馈");
System.out.println("*******************************************");
}else{
System.out.println("输入错误!请重新输入!");
System.out.println("*******************************************");
continue;
}
}while(true);
}
用捕捉异常的方式,如果nextInt()方法发生异常则表示输入的不为数字,代码实例:
public class Test {
public static void main(String[] args) {
int x;
while (true) {
System.out.print("输入数字:");
try {
x = new Scanner(System.in).nextInt();
break;
} catch (Exception e) {
continue;
}
}
System.out.println("输入的数字为:" + x);
}
}
我不是很明白您的意思,但我想是这样的,如果你在循环中要判断用户是否输入了数字的话,也许可以检查一下number的值是否为空。空则无数字,非空可能就是有数字,不过我对java不大熟悉,仅供参考