求助!因类型转换导致for循环不能终止

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);
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值