【问题标题】:Java using a method value to subtract a object field valueJava使用方法值减去对象字段值
【发布时间】:2017-10-03 06:24:15
【问题描述】:

我的快速问题是。

我怎样才能允许这个方法返回它的 damageDelt 值?我想使用这个值能够从另一个类字段变量中减去命中点值。我怎样才能做到这一点?因为我希望这种方法可以减少来自另一个对象生命值的生命值。

谢谢

package com.DavidLee.Programming;

public class Main {

    public static void main(String[] args) {

        new Main().railGunAttack();
        System.out.println();

    }

    public void railGunAttack() {

        int randomNumber = (int) (Math.random() * 100 + 1);

        if (randomNumber > 0 && randomNumber < 50) {
            int damageDelt = 2 * randomNumber;
            System.out.println("Railgun did " + damageDelt + " Damage");
        } else if (randomNumber > 50 && randomNumber < 80) {
            int damageDelt = 4 * randomNumber;
            System.out.println("Railgun did " + damageDelt + " Damage");
        } else if (randomNumber > 80 && randomNumber < 100) {
            int damageDelt = 50 - randomNumber;
            System.out.println("Railgun did " + damageDelt + " Damage " + "Railgun projectiles glazed the target");
        } else
            System.out.println("Railgun missed target");
    }
}

【问题讨论】:

  • public int railGunAttack()return damageDelt;(或 0)视情况而定。
  • 嗯...把public void改成public int,最后加上return damageDelt;
  • 请更改此问题的标题以具有一些描述性价值
  • 在方法的开头声明damageDealt,而不是在每个if块内。

标签: java variables if-statement methods


【解决方案1】:

正如 cmets 所建议的,您需要将函数的返回类型更改为返回 int,并且您需要返回您的 damageDelt 变量。一种方法是在 if 语句之外声明它,然后在函数末尾返回它。如果您不想这样做,您可以在每个 if 块内添加一个 return 语句,但这会有点混乱。 所以你的函数可能看起来像这样:

public int railGunAttack() {

    int randomNumber = (int) (Math.random() * 100 + 1);
    int damageDelt = 0;

    if (randomNumber > 0 && randomNumber < 50) {
        damageDelt = 2 * randomNumber;
        System.out.println("Railgun did " + damageDelt + " Damage");
    } else if (randomNumber > 50 && randomNumber < 80) {
        damageDelt = 4 * randomNumber;
        System.out.println("Railgun did " + damageDelt + " Damage");
    } else if (randomNumber > 80 && randomNumber < 100) {
        damageDelt = 50 - randomNumber;
        System.out.println("Railgun did " + damageDelt + " Damage " + "Railgun projectiles glazed the target");
    } else {
        System.out.println("Railgun missed target");
    }
    return damageDelt;
}

【讨论】:

    【解决方案2】:

    更改方法的返回类型,并在方法中引用要返回的变量或对象。

    示例: 公共整数年龄(){ int 用户年龄 = 100;

    返回用户年龄; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 2020-10-29
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      相关资源
      最近更新 更多