这是一个计算输入的整数的和。
我的问题是,如果我输入的不是整数,我想从当前输入的数重新开始
比如:
请输入第一个数:10
请输入第二个数:20
请输入第三个数:asdf
数字格式错误,请重新输入!
请输入第三个数:
您输入的三个整数的和为:……
我想用异常实现,该怎么做?
import java.util.*;class Test{
public static void main(String[] args){
Test.test(3);
}

public static void test(int x){
int sum = 0;
Scanner input = new Scanner(System.in); for(int i = 1; i <= x; i++){
System.out.print("请再输入第"  + i + "个正整数:");
sum += input.nextInt();
}

System.out.println("您输入的" + x + "个整数的和为:" + sum);//输出最后一次的和就是总和
}
}

解决方案 »

  1.   

    说个不用异常的思路给lzcount = 0;
    while(count < 3){
       
       if(count == 0) 请求输入第一个
       if(count == 1) 请求输入第二个
       if(count == 2) 请求输入第三个
       //正确读一个,这里可以用正则校验是否为数字
        count++;
    }大概就是这样
      

  2.   

    在input.nextInt();这里。用try catch语句。捕获异常。在catch语句中重新输入
      

  3.   

    额。。正则表达式还没学,刚看了下InputMismatchException异常是什么正则表达式的,按2楼的说法做就会抛这个异常,看来我还得继续学才能解决这个问题啊。。