程序返回内容后会停止执行吗?

时间:2019-07-04 17:04:47

标签: java

public int max1020(int a, int b) {
  // First make it so the bigger value is in a
  if (b > a) {
    int temp = a;
    a = b;
    b = temp;
  }

  // Knowing a is bigger, just check a first
  if (a >= 10 && a <= 20) return a;
  if (b >= 10 && b <= 20) return b;
  return 0;
}

因此,如果a和b都在[10,20]范围内,它将返回a,并停止执行接下来的两行代码吗?

4 个答案:

答案 0 :(得分:1)

  

因此,如果a和b都在[10,20]范围内,它将返回a,并停止执行接下来的两行代码吗?

它首先检查a,如果它与第一个条件匹配,则函数将返回a的值。函数返回后,将不执行下面两行代码。

  

程序返回内容后是否会停止执行?

否,该值不是由整个程序返回,而是由特定函数返回。让我举一个例子。

public class Main {

public static void main(String[] args) {
    int result;

    // The method max1020 returns the value of 'a' here
    result = max1020(11,14);
    System.out.println(result);

    // The method max1020 returns the value of 'b' here
    result = max1020(31,11);
    System.out.println(result);

    // The method max1020 returns the value of '0' here
    result = max1020(50,60);
    System.out.println(result);
}

private static int max1020(int a, int b) {
    // First make it so the bigger value is in a
    if (b > a) {
        int temp = a;
        a = b;
        b = temp;
    }

    // Knowing a is bigger, just check a first
    if (a >= 10 && a <= 20) return a;
    if (b >= 10 && b <= 20) return b;
    return 0;
}

}

return关键字只会使您脱离所使用的功能,而不会让您脱离整个程序。首次调用max1020()时,它将返回a。看到它返回a的值,但程序仍将执行其他行。它将打印变量结果的值,然后在另一对值上再次调用max1020()。

答案 1 :(得分:0)

如果a和b都在[10,20]范围内,它将始终返回a。 没错,一旦返回return语句,它将不再执行任何其他代码。

答案 2 :(得分:0)

假设程序检查a是否在范围内,并且假设求值结果​​为true,那么您将是正确的,它将把值保值返回给变量a。 在Java中,关键字 return 表示程序将返回与其关联的值并停止进一步执行。

关于您关于void方法的问题。在Java和许多其他语言中,您有一个称为“ state”的字眼,这意味着在当前执行范围之外还存在一些值,例如在伪代码中

   int a = 0
     public void inc (){
     a++
}

Method inc不接受任何参数(其arity为0),但会递增在其自身函数范围之外定义的变量a。具有除void外的其他返回类型的任何方法都将返回定义的类型。

我希望我的回答会有所帮助。

答案 3 :(得分:0)

您似乎在混合方法返回程序退出(也可以称为“ 程序返回代码”)。

在一种方法中,每当到达行return时,该方法就在那里停止,并且将不执行进一步的指令。

当该方法是main方法时,它也是程序的入口点。因此,当main调用return时,程序将有效停止,并返回代码0(表示“成功”)。

在Java中,您还可以通过调用System.exit(ret)来停止程序的执行。 在特定情况下,即使未显式调用return,JVM进程(“您的程序”)也将停止执行进一步的指令(尽管有些IDE会给您错误或警告。返回代码(由调用方进程看到)将是您使用ret指定的代码。