gpt4 book ai didi

java - 我在 java 方法代码中遇到问题,该代码返回两个数字的除法

转载 作者:行者123 更新时间:2023-12-02 08:59:02 24 4
gpt4 key购买 nike

在此代码中实现了除法方法,因此我想使用 try catch 和 throws 处理 3 种未定义除法的情况,但它给了我一条错误消息,指出除法方法必须返回 float 。封装计算器3;

//类实现接口(interface)公共(public)类实现实现 calc {

//Add function
public int add(int x, int y) {
int ans1 = x + y ;
return ans1 ;

}

//Divide function
public float divide(int x, int y) throws RuntimeException{
try {
if(y == Double.POSITIVE_INFINITY || y == Double.NEGATIVE_INFINITY || y == 0 ) {
throw new ArithmeticException("invalid_division");

}
else {
return x / y ;
}

}catch (ArithmeticException invalid_division ) {
System.out.println("invalid_division");
}
}
}

最佳答案

您的divide返回类型是float

int 永远不会等于 Double.POSITIVE_INFINITYDouble.NEGATIVE_INFINITY,因为它们不在可能值的范围内。

如果函数被捕获,则不会抛出错误。

考虑以上3点:

//divide
public float divide(int x, int y) throws ArithmeticException{
if (y == 0) throw new ArithmeticException("invalid_division");
return (float)x / y; // cast x to float so a float will result
}

关于java - 我在 java 方法代码中遇到问题,该代码返回两个数字的除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307907/

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