gpt4 book ai didi

java:如何查找初始值为零并出现错误 "/by zero"的值

转载 作者:行者123 更新时间:2023-12-01 19:57:21 25 4
gpt4 key购买 nike

我需要计算我的 java 游戏的准确性。到目前为止,我尝试了几种方法,但每次它要么不起作用,要么给我一个错误“/by zero”。 Bullets_shot 的初始值为零,准确度的公式为敌人_击倒 % 子弹_射击。如何在获得准确读数的同时绕过此错误?我尝试做一个循环,如果Bullets_shot为0,则将其设置为1,但它不会给出准确的读数。有没有一种方法可以为其设置一个值,直到它的值大于 1,如果可以,我该怎么做?这是一些代码片段。这是完整的代码: https://github.com/ms12r/Galaxy-Monkeys

在敌人类的tick方法中:

if(tempObject.getId() == ID.Bullet)
{
if(getBounds().intersects(tempObject.getBounds()))
{
hp -= 50;
bullets_hit += 1;
handler.removeObject(tempObject);

在 mouseinput 类中

for (int i = 0; i < handler.object.size(); i++)
{
GameObject tempObject = handler.object.get(i);

if(tempObject.getId() == ID.Player)
{
handler.addObject(new Bullet(tempObject.getX()+16,
tempObject.getY()+24, ID.Bullet, handler, x, y, game));
bullets_shot += 1;

}

在游戏类

            System.out.println("GAME OVER");
System.out.println("Level Reached: " + game.level);
System.out.println("Accuracy: " + ((Enemy.bullets_hit + Gorilla.bullets_hit) % MouseInput.bullets_shot) + "%");
Game.INSTANCE.stop(); }

最佳答案

如果您得到的错误是/除零,请考虑查看您的计算。

System.out.println("Accuracy: " + ((Enemy.bullets_hit + Gorilla.bullets_hit) % MouseInput.bullets_shot) + "%");

很简单,MouseInput.bullets_shot 没有对其进行检查以防止错误发生。

您可以使用简单的 if 语句修复它。

如果(在您的情况下)用户射击了一些子弹,则计算只能在没有被零除错误的情况下进行。没有开枪的情况可以评定为0精度:

...

double accuracy;
if (MouseInput.bullets_shot > 0) {
// your calculation
accuracy = (Enemy.bullets_hit + Gorilla.bullets_hit) % MouseInput.bullets_shot;
} else {
accuracy = 0D;
}
System.out.println("Accuracy: " + accuracy);

...

还有一个问题:为什么要使用模 (%) 而不是除法 (/) 来进行百分比计算?

关于java:如何查找初始值为零并出现错误 "/by zero"的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49120433/

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