gpt4 book ai didi

java - 从整数成员变量中减去的方法未按预期工作

转载 作者:行者123 更新时间:2023-12-01 13:44:49 25 4
gpt4 key购买 nike

在我的类(class)中,我将成员变量 honey 设置如下:

int honey = 10;

我想要下面的方法做的是将所需的蜂蜜数量作为参数,如果有可用的蜂蜜数量,则返回该数量,并从商店中删除指定的数量,或者如果没有蜂蜜,则返回 0。我的方法如下:

public int takeHoney(int h2){
if(h2 <= honey){
honey = honey - h2;
return h2;
}else{
return 0;
}
}

当我的测试工具执行此操作时:

h.takeHoney(Integer.MAX_VALUE);

它没有像我想要的那样沿着 if 分支走下去,而是沿着 else 分支走下去。为什么是这样?当然,因为它使用 Integer.MAX_VALUE 它正在删除 hive 中的确切值,因此 h2<= honey 因为它等于 honey?

最佳答案

“Honey”是全局变量吗?如果是,它的值(value)是多少?

“If” block 仅在变量 Honey 的值大于或等于变量 h2 时才起作用。我认为 Honey 的值(value)小于 h2。这就是执行 else block 的原因。

[编辑]您更新了问题并明确提到了 honey=10。

if block 中的条件 (h2 <= honey)

蜂蜜值(value)=10;

h2= 整数.MAX_VALUE= 2147483647 。显然 h2>亲爱的。

因此,在这种情况下,您的 if block 将永远不会被执行。

更改方法调用如下

h.takeHoney(10);

h.takeHoney(9);

(您的 if block 将在任何小于 11 的值时执行)

关于java - 从整数成员变量中减去的方法未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com