Java 2d数组可以工作,但会抛出Execption

时间:2017-08-03 19:37:04

标签: java multidimensional-array

我的程序假设使用多维数组计算奖金,基于周和评论,我尝试使程序失败,它返回正确的字符串,但在输出框中,告诉我异常,我该如何停止多维数组中的异常?下面是代码和输出。

static int bonus[][] = {{5, 9, 16, 22, 44},
    {10, 12, 18, 25, 36},
    {20, 25, 32, 42, 53},
    {32, 38, 45, 55, 68},
    {46, 54, 65, 77, 90},
    {60, 72, 84, 96, 120},
    {85, 100, 120, 140, 175}};

    static int weeks;
    static int reviews;

    calcButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
            // TODO add your handling code here:
            weeks = Integer.parseInt(weeksWorked.getText());
            if (weeks > 6) {
                weeks = 6;
            }
            else if(weeks < 0){
                outputBox.setText("Invalid Number");
            }
            reviews = Integer.parseInt(weeksWorked.getText());

            if (reviews > 4) {
                reviews = 4;
            }
            this.outputBox.setText("$" + bonus[weeks][reviews]);
        }                                          

Output

2 个答案:

答案 0 :(得分:0)

变量的值大于数组大小。打印数组大小和审阅或周变量,并检查其超出范围的原因。

答案 1 :(得分:0)

输入-1时,首先将outputBox文本设置为“Invalid Number”,然后继续在第123行使用该无效的周数。

如果使用调试器,这可能很容易测试。