我正在为一个数组的for循环而挣扎,我该如何修复我的Java代码?[已关闭]

sgtfey8w  于 2023-01-11  发布在  Java
关注(0)|答案(3)|浏览(104)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
所以我被困在这个我想完成的问题上了。
我需要做一个for循环,从数组中获取权重,如果满足一定的条件就更新它们,如果数组中的权重小于20,并且客户有一张会员卡(两者都必须为真),那么权重将减少到初始权重的95%(0.95 * weight),然后将权重相加。
不管怎样,问题是这样的,我的答案是:
在两个注解之间,执行以下操作:

  • 创建一个for循环,遍历整个weights数组。
  • 在for循环中,执行以下操作:
  • 创建一个名为weight的float类型的局部变量,以存储特定索引处的权重值。
  • 创建一个条件,检查weight是否小于20以及hasLoyaltyCard是否为真,如果为真,则将weight乘以0.95。
  • 将权重添加到totalWeight变量。
float calculateWeight(float[] weights, boolean hasLoyaltyCard) {
        float totalWeight = 0;
        // TODO: Step 1 work goes between the two comments 
        float weight = 0;
        for (int i = 0; i < weights.length; i++) {
            weight = weights[i];
            if (weight < 20.0) {
                if (hasLoyaltyCard = true) { 
                    weight = weight * 0.95f;
                }
            }    
            totalWeight = totalWeight + weight;
        }
        //
        return totalWeight;
    }

我只是不确定我哪里出错了。幸运的是,代码确实编译了。但是当运行测试用例时,它们就不正确了。我的错误在哪里?

mm5n2pyu

mm5n2pyu1#

1.不要将布尔值与truefalse进行比较;它们可以直接用在if语句中(也可以用and(&&)操作符合并这两个if语句)。
1.在循环内部加和,而不是在循环结束之后。

for (float weight: weights) {
    if (weight < 20 && hasLoyaltyCard) weight *= 0.95f;
    totalWeight += weight;
}
6ovsh4lw

6ovsh4lw2#

保持totalWeight = totalWeight +重量;在如下所示的for循环中,更改if条件

for (int i = 0; i < weights.length; i++) {
            weight = weights[i];
            if (weight < 20.0) {
                if (hasLoyaltyCard) { 
                    weight = weight * 0.95f;
                }
            }
            totalWeight = totalWeight + weight;
        }
vwkv1x7d

vwkv1x7d3#

问题出在if (hasLoyaltyCard = true)部分。它应该像if (hasLoyaltyCard == true)。当你执行=时,它会编译,因为它理解truehasLoyaltyCard的赋值变量,并且它总是为真。这意味着你的代码将在所有客户都有忠诚卡的情况下运行。

改进:

  • 不需要显式检查hasLoyaltyCard值是否为真,直接使用if (hasLoyaltyCard)最好读取。
  • if (weight < 20 && hasLoyaltyCard)一样检查所有可能的条件。

相关问题