当输入值太高时,我试图让我的程序输出错误代码,但我只能在终端窗口中显示错误消息,而不是在方法返回中。这是代码:
public class AckermannAdvanced
{
public static long ack (long m, long n)
{
long ans;
System.out.print("\f");
if (m > 3 && n > 1) {
System.out.print("Input values are too high");
}
else {
if (m == 2) ans = (2*n)+3;
else if (m == 1) ans = n+2;
else if (m == 0) ans = n+1;
else if (n == 0) ans = ack(m-1, 1);
else ans = ack(m-1, ack(m, n-1));
System.out.print(ans);
return(ans);
}
return(0);
}
}
答案 0 :(得分:0)
您可以使用带有大写 L 的 Long
,然后它是一个表示 long
的对象。一旦您返回一个对象,您就可以返回 null
。 Java 返回时自动将 long
转换为 Long
,因此其他返回应该是相同的。所以
public static Long ack(long m, long n) //...
//...
if (m > 3 && n > 1) {
return null;
}
或者你可以让它返回一个 OptionalLong
public static OptionalLong ack(long m, long n) //...
//No result
return OptionalLong.empty();
//Result
return OptionalLong.of(21438999L);
https://www.geeksforgeeks.org/optionallong-orelselong-method-in-java-with-examples/