java - 根据条件从方法返回 boolean 值或整数

标签 java return

弹出从 DS 中的 Stack 中获取值的最基本程序:

public int pop()
{
    if(!isEmpty())
    {
        int pop_val = myArray[topIndex];
        topIndex--;
        return pop_val;
    }
    else
    {
        System.out.println("Stack is empty");
        System.exit(0); /* stop the program execution*/
        return 4; /* did this just to avoid the error*/
    }
}

问题:如您所见,方法应该返回一个 int 类型的值但是我只想打印或返回一个 false如果堆栈为空。

问题:

  • java中是否可以返回不同类型的返回值 根据条件???和

  • 是否有更好的解决方法来解决此类问题,而不是我在代码中尝试的方法?


P.S: 请不要在回答之前继续我的代表,我是 Noob in java/p>

最佳答案

  1. 不,您不能从方法返回不同类型的对象(除非它们有一个共同的父类(super class),在这种情况下这是可能的)。

  2. 如果我是你,我会在堆栈为空时抛出一个自定义的Exception:

例如:

public int pop() throws EmptyStackException {
 ...
}

注意:如果您不想使用Exception(s),您可以定义一个无效的返回值,例如-1

public int pop() {
    ...

    return -1; /* did this just to avoid the error*/
}

关于java - 根据条件从方法返回 boolean 值或整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556621/

相关文章:

java - 获取响应 404 和应用程序崩溃改造

arrays - C 数组问题在不同平台上显示不同结果

Java - 我的代码不会向类属性返回任何非空值

java - 使用 XLConnect 写入 MS Excel 工作表时出现 R NoSuchMethodError (Java)

java - MD5 对相同输入的不同值进行哈希处理

java - JMenuItem 和 ActionListener

java - 如何处理多级 Java 供应商调用?

c - 带逗号的返回语句

c - 当调用 return 时,这段 C 代码中发生了什么?

python - "Return"in Function only Returning Value