所以我正在进行这个多向数组练习并从书中复制过。面向对象的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(" ");
}
}
答案 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] + " ");
}