2017-05-04 22 views
-5

我的快速问题是。Java使用方法值来减去对象字段值

我将如何能够允许此方法返回其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"); 
    } 
} 
+2

'公众诠释railGunAttack()'和'返回damageDelt;'(或'0')适当。 –

+0

https://stackoverflow.com/help/how-to-ask – Ryan

+1

嗯......将其从'public void'改为'public int',并在最后添加'return damageDelt;'? –

回答

1

由于意见建议您需要更改函数的返回类型以返回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; 
} 
+0

谢谢你的回答帮助我:) –

0

变化的方法,该方法和返回类型引用变量或对象要返回。

示例: public int age(){ int UserAge = 100;

return UserAge; }