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
值。您忘记设置