函数返回中有两种不同的数据类型

Ehs*_*san 0 java types return

在这个函数中,我需要两个不同的数据类型用于返回,一个浮点数y不为零,一个布尔值为零.

public XXXXX division(int x, int y){
    if(y!=0){
        return x/y;
    }
    else{
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过使用两个函数1-检查校正2来实现这一点.在一个函数中计算出我想要的正确除法,这可能吗?

JB *_*zet 5

不应允许将0作为除数传递.在这种情况下,您应该抛出异常而不是返回false:

public float division(int x, int y) {
    if (y != 0) {
        return ((float) x) / y;
    }
    else {
        throw new IllegalArgumentException("division by 0 makes no sense");
    }
}
Run Code Online (Sandbox Code Playgroud)