“休息”和“返回”之间的区别

时间:2020-11-08 05:36:14

标签: java

在下面的代码中,当我使用“ break”而不是“ return”时,它还会打印第二个println()。为什么会这样?

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter n : ");
    int num = scan.nextInt();

    for(int count = 2; count <= num/2; count++) {
        
        if(num%count == 0) {
            System.out.println(num + "is not a prime number.");
            **return**;
        }
        
    }
    System.out.println(num + "is a prime number.");

}

5 个答案:

答案 0 :(得分:1)

这是一个解释差异的好例子:

void explainBreak() {
  int i = 10;
  while (i > 0) {
    if (i < 5) {
      break;
    }
    System.out.println(i);
    i -= 1;
  }

   while (i > 0) {
     System.out.println(i);
     i -= 1;
   }
}

其输出是:

10
9
8
7
6
5
4
3
2
1

让break用return代替:

void explainBreak() {
  int i = 10;
  while (i > 0) {
    if (i < 5) {
      return;
    }
    System.out.println(i);
    i -= 1;
  }

   while (i > 0) {
     System.out.println(i);
     i -= 1;
   }
}

这将返回:

10
9
8

编辑

简而言之:

break:从当前循环中断(如果有)

return:返回调用该函数的父调用者

答案 1 :(得分:0)

break仅终止For Loop,而不终止整个执行过程。 (第二个println将执行)。 return将完成执行并移交给调用主方法的调用方,并且在该方法的该点之后将不再执行任何操作(不会执行第二个println)。

答案 2 :(得分:0)

break只会停止for循环的进一步执行,但循环后的代码将照常继续。由于第二次打印不在循环中,因此将执行该行。

return语句会将您吐出main方法,然后执行该操作就不会执行任何操作。

一般经验法则:“如果遇到return语句,则除了与包含return的try块相关联的finally块外,将不执行该函数之外的任何事情。”

答案 3 :(得分:0)

我已经尝试了您的代码,我想您将仅借助代码来了解其中的区别。看到这是您的代码:

 import java.util.*;

public class HelloWorld{

    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter n : ");
    int num = scan.nextInt();

    for(int count = 2; count <= num/2; count++) {
        
        if(num%count == 0) {
            System.out.println(num + " is not a prime number.");
            return;
        }
        
    }
    System.out.println(num + "is a prime number.");
     }

}

编写return关键字时,它将终止具有return关键字的函数,在这里,您的主函数是唯一的函数,因此在第一个System.out.println(num +“不是质数”之后)。 );行,它将退出主要功能,并且将不执行其他代码。但是这里的窍门是,只有当它不是素数时,它才会发生,因为您已经在if条件中写了它。因此,对于素数,假设5,它将检查if条件if(num%count == 0),并且它为false,因此它将在for循环结束后打印:System.out.println(num +“是素数数字。”)

Return image

现在我们来休息一下吧:

import java.util.*;

public class HelloWorld{

    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter n : ");
    int num = scan.nextInt();

    for(int count = 2; count <= num/2; count++) {
        
        if(num%count == 0) {
            System.out.println(num + " is not a prime number.");
            break;
        }
        
    }
    System.out.println(num + " is a prime number.");
     }

}

它将检查条件条件是否打印行System.out.println(num +“不是素数。”);和“循环”的中断意味着它将退出循环,在这种情况下,仅for循环终止。因此for循环之后的下一条指令会正常工作。 Break Statement image

答案 4 :(得分:-1)

要从循环中退出时使用中断,而返回则用于返回到调用它的步骤或停止进一步执行。

相关问题