gpt4 book ai didi

java - 在java中函数的返回中应用强制转换?

转载 作者:行者123 更新时间:2023-12-03 02:14:40 25 4
gpt4 key购买 nike

我刚刚编写了这个必须返回 double 值的简单方法。这是从银行账户取款的功能。仅当用户输入的值小于其帐户中的金额时,该函数才必须让用户获得资金。有一个条件,如果他是特殊用户,即使他尝试value=balance+1000,他也可以拿走钱。

由于我是java的初学者,我还不熟悉这种类型的东西(我是一名php程序员,所以我从来没有真正担心过这个,但是我在做这个时遇到了麻烦代码工作,因为如果可以的话,我返回一个 double 值,如果不行,则返回一个假值,并且我不能在java中执行此操作..这是我的方法..(变量“balance”和“special”属于我的类(class))。

public double getMoney (double value) {
if (value <= balance) {
balance = balance - value;
} else {
if (special == true && value < (balance+1000)) {
return balance-value;
} else {
return false;
}
}
}

我知道这是一个菜鸟问题,但我刚刚开始学习java,并且习惯使用PHP编码,我不需要担心变量的类型,所以我想知道你是否可以给我一些建议。谢谢

最佳答案

您可以返回 Double.NEGATIVE_INFINITY,而不是 false。然后调用者显式检查该值,并检测 ist 为无效 withDrawn()。

调用者通过以下方式检查

double val = getMoney(5000000);
if (val == Double.NEGATIVE_INFINITY) {
// money could not be withdran
// print message
} else {
// ok money could be withdrawn
}

如果你想做得更专业,你必须重新调整 transactionInfo:

TransActionInfo info = getMoney(500000);
if (info.getStatus == Status.LIMIT_EXCEEDED) {
// could not withraw

} else {
...
}

您可以使用 switch 语句来代替 if:

TransActionInfo info = getMoney(500000);
switch (info.getStatus()) {
case: Status.OK:
break;
case Status.LIMIT_EXCEEDED:
// inform on display of bankomat. or similar
break;
...
}

关于java - 在java中函数的返回中应用强制转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13612371/

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