Java小白,求助各位大佬~
题目:编写一个程序,创建一个长度为3的数组,然后提示用户向数组中输入三个整数,显示它们的和,如果用户输入非整数时,抛出NumberFormatException异常,提示用户需要输入整数,重新输入;如果用户输入的数据多于3个,则抛出ArrayIndexOutOfBoundsException异常,提示下标越界重新输入。
我的程序如果不进行求和部分,异常处理都没有问题,但是一求和for循环就出不去了,程序卡死。
请问哪里的问题?怎么修改?
package exception_and_error;
import java.util.*;
public class ExceptionTester {
static public void main(String args[]) {
String[] input = new String[4];
int[] number = new int[3];
int sum = 0,i=0;
Boolean valid = false;
Scanner in = new Scanner(System.in);
while(!valid) {
try {
System.out.print("请输入三个整数:");
for(i=0;i<4;i++) {
input[i] = in.next();
if(input[i].contains(".")) { //判断输入数据是否是小数
throw new NumberFormatException();
}
if(i>=3) {
throw new ArrayIndexOutOfBoundsException();
}
}
valid = true; //没有异常则跳出循环
}catch(NumberFormatException e){
System.out.println(" 需要输入整数,请重新输入!");
}catch(ArrayIndexOutOfBoundsException a) {
System.out.println(" 数组下标越界,请重新输入!");
}
}
//计算三个整数的和
for(i=0;i<input.length;i++) {
number[i] = Integer.parseInt(input[i].trim());//将字符串转换为整型
sum += number[i];
}
System.out.println("三个整数的和为:"+sum);
}
}