目的:输入若干个整数,求其和,直到结束标志999为止。在输入过程中,其输入非正整数,则忽略。其实也就是跳过发生InputMismatchException异常的错误输入。代码如下:importjava.util...
目的:输入若干个整数,求其和,直到结束标志999为止。在输入过程中,其输入非正整数,则忽略。其实也就是跳过发生InputMismatchException异常的错误输入。
代码如下:
import java.util.*;
import java.io.*;
public class main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int k,SUM;
boolean ok=false;
Scanner scan=new Scanner(System.in);
k=0;
SUM=0;
while (!ok)
{
try
{
System.out.println("请输入一个整数进行累加操作:(累加结束标志为输入999)");
SUM += k;
k = 0;
k = scan.nextInt();
if(k==999){ok=true;}
} catch (InputMismatchException e)
{
System.out.println("输入数据不合法,请重新输入!");
}
}
System.out.println("累加和为" + SUM);
}
}
实际问题是发生一次输入数据不匹配,异常被catch捕捉之后,while循环继续,但不再执行try语句内部的内容,导致catch死循环。。。
这个问题怎么解决?
是写法有问题还是应该换一种异常处理方式?
希望准确解答3Q3Q3Q~
展开