无法在多数组中找到变量,但它就在那里

时间:2015-12-11 18:19:18

标签: java arrays

所以我正在进行这个多向数组练习并从书中复制过。面向对象的Java编程。 C thomas Wu第595页。

对我来说,数组有两个方面[] [],使用array [] []等访问

在最后一部分为每个添加1.50然后显示它。 问题突然间,当用作索引时,它无法找到j。

这本书错了吗?

以下是代码。

class PayScaleTable
{
    public static void main (String[]args){
        double [][] payScaleTable = {
        {10.50,12.00,14.50,16.75,18.00},
        {20.50,22.25,24.00,26.25,28.00},
        {34.00,36.50,38.00,40.35,43.00},
        {50.00,60.00,70.00,80.00,99.99}};
    System.out.println("\n");
    System.out.println("\n");     

    //Avg pay of level 2 ppl
    double sum = 0.00, average;
    for (int j=0; j<5;j++){
        sum += payScaleTable[2][j];
    }
    average = sum / 5;
    System.out.println("lvl 2employees " + average);
    System.out.println("\n");
    System.out.println("\n"); 

    //pay difference in grades
    double difference;
    for(int i=0; i<4;i++){
        difference = payScaleTable[i][4] - payScaleTable[i][0];
        System.out.println("pay diff " + i + " is " + difference);
    }

    System.out.println("\n");
    System.out.println("\n"); 
    //print out pay scale table
    for (int i=0; i<payScaleTable.length;i++){
        for(int j=0; j<payScaleTable[i].length; j++){
            System.out.print(payScaleTable[i][j] + " ");
        }
        System.out.print(" ");
    }
    System.out.println("\n");
    System.out.println("\n"); 

    //increase by 1.40 and display results
    for(int i=0;i<payScaleTable[i].length;i++){
        for(int j=0;j<payScaleTable[i].length;j++) 
            payScaleTable[i][j] += 1.50;
            System.out.print(payScaleTable[i][j] + " ");
    }
    System.out.println(" ");
    }
}

enter image description here

1 个答案:

答案 0 :(得分:4)

你缺少大括号。

for(int j=0;j<payScaleTable[i].length;j++) 
        payScaleTable[i][j] += 1.50;
        System.out.print(payScaleTable[i][j] + " ");

j放在循环内第一行的范围内,但缺少的括号意味着循环只有一行(相当于下面的行):

for(int j=0;j<payScaleTable[i].length;j++) {
        payScaleTable[i][j] += 1.50;
        }
        System.out.print(payScaleTable[i][j] + " ");

按如下方式添加大括号,它应该有效:

for(int j=0;j<payScaleTable[i].length;j++) {
    payScaleTable[i][j] += 1.50;
    System.out.print(payScaleTable[i][j] + " ");
}