如何在另一个函数中使用从主类传递到另一个类的参数?

问题描述 投票:0回答:1

我尝试制作二十一点游戏,但遇到了功能问题。我想传递金钱和下注的参数,检查获胜者并计算新的金额,然后将其传递给另一个函数(在同一类中)以返回值,因为函数只能返回 1 个值,而且我找不到一种方法来做到这一点。

package project1;

public class RestultsNPayment {
        //int cash;
    public static String winner(int Dtotal, int Ptotal, int money, int bet) {
        if(Ptotal > 21) {
            return ("--------Dealer wins--------");
                        cash = money;
        }
        else if (Ptotal == Dtotal)
            return ("------------Tie------------");
        else {
            if(21-Ptotal > 21-Dtotal && Dtotal < 22)
                return ("--------Dealer wins--------");
            else
                return ("--------Player wins--------");
        }
    }
    public static int payment(int money, int bet) {
        return 0;
    }
}

我尝试使用这个。方法并创建保存它的变量。尝试制作一个可以赚钱和下注的新功能,但后来意识到我需要先找到获胜者,所以我认为这不会有帮助。我想过在赢家函数中获取金钱并下注,计算新的现金金额,然后将现金传递到支付函数中。如果这是错误的想法,或者您有更好的方法,请纠正我。

java function class arguments parameter-passing
1个回答
0
投票

从阅读你的问题来看,你想要实现的内容并不困难,但如果你对 Java 代码的结构有根本性的误解,那么正确实现可能会非常混乱。您的代码中有一些混淆。

首先,方法(或函数)是一组指令,程序的另一部分可以通过引用方法名称来调用这些指令来执行(调用)。方法可以接受输入(任意数量的参数),并且要么产生返回值,要么不产生返回值。关键字“void”表示该方法返回 null(这是一个用于表示不存在值的关键字)。

每种方法通常应该只有一个、明确、特定的目的(文档也有帮助)。此外,要执行代码,要执行的语句应该位于包含 main 方法的类内。为了简单起见,我将其添加到现有的类中。

在“winner”方法中,从不使用参数“money”和“bet”,因此可以省略它们。此外,您尝试在此方法中设置非局部变量“cash”的值,这将导致编译错误。这是该方法的更新版本:

public static String winner(int Dtotal, int Ptotal) { if (Ptotal > 21) { return "dealer"; } else if (Ptotal == Dtotal) { return "tie"; } else { if (21 - Ptotal > 21 - Dtotal && Dtotal < 22) { return "dealer"; } else { return "player"; } }
现在很明显,这种方法的唯一目的是评估获胜者。确定获胜者后,您的下一步是计算新的现金金额,然后将现金转入付款方式。然而,由于解释含糊不清,我不太确定你想要实现什么;所以我会留下一个示例解决方案。

完整代码:

package project1; public class RestultsNPayment { public static String winner(int Dtotal, int Ptotal) { if (Ptotal > 21) { return "dealer"; } else if (Ptotal == Dtotal) { return "tie"; } else { if (21 - Ptotal > 21 - Dtotal && Dtotal < 22) { return "dealer"; } else { return "player"; } } } public static int payment(int cash) { return 0; } // Where your code is executed public static void main(String[] args) { // Holds the return value of the winner method String champion = winner(10, 20); // Arbitrary Dtotal and Ptotal arguments // [Insert logic to calculate cash here] int cash = 0; // Passing cash into payment method payment(cash); } }
希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.