Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的所有数组索引值都设置为相同的值_Java - Fatal编程技术网

Java 为什么我的所有数组索引值都设置为相同的值

Java 为什么我的所有数组索引值都设置为相同的值,java,Java,我的课程的这一部分似乎给了我一个问题: public static double[] getBonusAmt(boolean[] bonusEligibility, int[] numYrsFlown, double[] bonusAmt) { bonusAmt = new double[bonusEligibility.length]; double bonus = 0; for (boolean b : bonusEligibility) {

我的课程的这一部分似乎给了我一个问题:

public static double[] getBonusAmt(boolean[] bonusEligibility, int[] numYrsFlown, double[] bonusAmt) {  
      bonusAmt = new double[bonusEligibility.length];  
      double bonus = 0;  
      for (boolean b : bonusEligibility) {    
         for (int i : numYrsFlown) {       
            if (i >= 9 && b == true) {
               bonus = 2410.00;
            }
            else if (i < 9 && i >= 6 && b == true) {
               bonus = 1206.00;
            }
            else if (i < 6 && i >= 2 && b == true) {
               bonus = 515.00;
            }
            else if (i < 2 && b == true) {
               bonus = 0.00;
            }                        
         } 
      }      
      return bonusAmt; 
   }
乔应该获得奖金,因为他的飞行英里数高于平均水平,但他的数量为零。Joe的预期奖金金额应为515.00,因为其中一位,他有资格获得奖金,另外两位,只飞行了2年


有人知道为什么即使我输入了另一个飞行次数超过平均值的人,奖金金额始终为零吗?

您的方法将值分配给
奖金
变量,但返回一个
bonusAmt
变量,该变量从未分配,因此其值保持
0.0

你的嵌套循环没有多大意义。假设
bonusEligibility
数组的第i个索引与
numYrsFlown
数组的第i个索引相对应,看起来需要一个常规for循环

public static double[] getBonusAmt(boolean[] bonusEligibility, int[]  numYrsFlown) {  
    double[] bonusAmt = new double[bonusEligibility.length];    
    for (int i = 0; i < bonusEligibility.length; i++) {           
        if (numYrsFlown[i] >= 9 && bonusEligibility[i]) {
           bonus = 2410.00;
        }
        else if (numYrsFlown[i] < 9 && numYrsFlown[i] >= 6 && bonusEligibility[i]) {
           bonusAmt[i] = 1206.00;
        }
        else if (numYrsFlown[i] < 6 && numYrsFlown[i] >= 2 && bonusEligibility[i]) {
           bonusAmt[i] = 515.00;
        }
        else if (numYrsFlown[i] < 2 && bonusEligibility[i]) {
           bonusAmt[i] = 0.00;
        }                         
    }      
    return bonusAmt; 
}
publicstaticdouble[]getBonusAmt(boolean[]bonusEligibility,int[]numYrsFlown){
double[]bonusAmt=新的double[bonusEligibility.length];
对于(inti=0;i=9&&bonusEligibility[i]){
奖金=2410.00;
}
如果(numYrsFlown[i]<9&&numYrsFlown[i]>=6&&bonusEligibility[i]){
bonusAmt[i]=1206.00;
}
如果(numYrsFlown[i]<6&&numYrsFlown[i]>=2&&bonusEligibility[i]){
bonusAmt[i]=515.00;
}
else if(numYrsFlown[i]<2&&bonusEligibility[i]){
bonusAmt[i]=0.00;
}                         
}      
返回bonusAmt;
}

顺便说一句,将
bonusAmt
数组作为参数传递给该方法没有意义,因为该方法为其分配了对新数组的引用

您的方法为
bonus
变量赋值,但返回一个
bonusAmt
变量,该变量从未赋值,因此其值保持为
0.0

你的嵌套循环没有多大意义。假设
bonusEligibility
数组的第i个索引与
numYrsFlown
数组的第i个索引相对应,看起来需要一个常规for循环

public static double[] getBonusAmt(boolean[] bonusEligibility, int[]  numYrsFlown) {  
    double[] bonusAmt = new double[bonusEligibility.length];    
    for (int i = 0; i < bonusEligibility.length; i++) {           
        if (numYrsFlown[i] >= 9 && bonusEligibility[i]) {
           bonus = 2410.00;
        }
        else if (numYrsFlown[i] < 9 && numYrsFlown[i] >= 6 && bonusEligibility[i]) {
           bonusAmt[i] = 1206.00;
        }
        else if (numYrsFlown[i] < 6 && numYrsFlown[i] >= 2 && bonusEligibility[i]) {
           bonusAmt[i] = 515.00;
        }
        else if (numYrsFlown[i] < 2 && bonusEligibility[i]) {
           bonusAmt[i] = 0.00;
        }                         
    }      
    return bonusAmt; 
}
publicstaticdouble[]getBonusAmt(boolean[]bonusEligibility,int[]numYrsFlown){
double[]bonusAmt=新的double[bonusEligibility.length];
对于(inti=0;i=9&&bonusEligibility[i]){
奖金=2410.00;
}
如果(numYrsFlown[i]<9&&numYrsFlown[i]>=6&&bonusEligibility[i]){
bonusAmt[i]=1206.00;
}
如果(numYrsFlown[i]<6&&numYrsFlown[i]>=2&&bonusEligibility[i]){
bonusAmt[i]=515.00;
}
else if(numYrsFlown[i]<2&&bonusEligibility[i]){
bonusAmt[i]=0.00;
}                         
}      
返回bonusAmt;
}

顺便说一句,将
bonusAmt
数组作为参数传递给该方法没有意义,因为该方法为其分配了对新数组的引用

您的方法为
bonus
变量赋值,但返回一个
bonusAmt
变量,该变量从未赋值,因此其值保持为
0.0

你的嵌套循环没有多大意义。假设
bonusEligibility
数组的第i个索引与
numYrsFlown
数组的第i个索引相对应,看起来需要一个常规for循环

public static double[] getBonusAmt(boolean[] bonusEligibility, int[]  numYrsFlown) {  
    double[] bonusAmt = new double[bonusEligibility.length];    
    for (int i = 0; i < bonusEligibility.length; i++) {           
        if (numYrsFlown[i] >= 9 && bonusEligibility[i]) {
           bonus = 2410.00;
        }
        else if (numYrsFlown[i] < 9 && numYrsFlown[i] >= 6 && bonusEligibility[i]) {
           bonusAmt[i] = 1206.00;
        }
        else if (numYrsFlown[i] < 6 && numYrsFlown[i] >= 2 && bonusEligibility[i]) {
           bonusAmt[i] = 515.00;
        }
        else if (numYrsFlown[i] < 2 && bonusEligibility[i]) {
           bonusAmt[i] = 0.00;
        }                         
    }      
    return bonusAmt; 
}
publicstaticdouble[]getBonusAmt(boolean[]bonusEligibility,int[]numYrsFlown){
double[]bonusAmt=新的double[bonusEligibility.length];
对于(inti=0;i=9&&bonusEligibility[i]){
奖金=2410.00;
}
如果(numYrsFlown[i]<9&&numYrsFlown[i]>=6&&bonusEligibility[i]){
bonusAmt[i]=1206.00;
}
如果(numYrsFlown[i]<6&&numYrsFlown[i]>=2&&bonusEligibility[i]){
bonusAmt[i]=515.00;
}
else if(numYrsFlown[i]<2&&bonusEligibility[i]){
bonusAmt[i]=0.00;
}                         
}      
返回bonusAmt;
}

顺便说一句,将
bonusAmt
数组作为参数传递给该方法没有意义,因为该方法为其分配了对新数组的引用

您的方法为
bonus
变量赋值,但返回一个
bonusAmt
变量,该变量从未赋值,因此其值保持为
0.0

你的嵌套循环没有多大意义。假设
bonusEligibility
数组的第i个索引与
numYrsFlown
数组的第i个索引相对应,看起来需要一个常规for循环

public static double[] getBonusAmt(boolean[] bonusEligibility, int[]  numYrsFlown) {  
    double[] bonusAmt = new double[bonusEligibility.length];    
    for (int i = 0; i < bonusEligibility.length; i++) {           
        if (numYrsFlown[i] >= 9 && bonusEligibility[i]) {
           bonus = 2410.00;
        }
        else if (numYrsFlown[i] < 9 && numYrsFlown[i] >= 6 && bonusEligibility[i]) {
           bonusAmt[i] = 1206.00;
        }
        else if (numYrsFlown[i] < 6 && numYrsFlown[i] >= 2 && bonusEligibility[i]) {
           bonusAmt[i] = 515.00;
        }
        else if (numYrsFlown[i] < 2 && bonusEligibility[i]) {
           bonusAmt[i] = 0.00;
        }                         
    }      
    return bonusAmt; 
}
publicstaticdouble[]getBonusAmt(boolean[]bonusEligibility,int[]numYrsFlown){
double[]bonusAmt=新的double[bonusEligibility.length];
对于(inti=0;i=9&&bonusEligibility[i]){
奖金=2410.00;
}
如果(numYrsFlown[i]<9&&numYrsFlown[i]>=6&&bonusEligibility[i]){
bonusAmt[i]=1206.00;
}
如果(numYrsFlown[i]<6&&numYrsFlown[i]>=2&&bonusEligibility[i]){
bonusAmt[i]=515.00;
}
else if(numYrsFlown[i]<2&&bonusEligibility[i]){
bonusAmt[i]=0.00;
}                         
}      
返回bonusAmt;
}

顺便说一句,将
bonusAmt
数组作为参数传递给该方法没有意义,因为该方法为其分配了对新数组的引用

您忘记将
bonusAmt
设置为所选的
bonus
值。

您忘记将
bonusAmt
设置为所选的
bonus
值。

您忘记设置