Reputation: 2523
The keyword break
in Java can be used for breaking out of a loop or switch statement. Is there anything which can be used to break from a method?
Upvotes: 172
Views: 597564
Reputation: 1304
if (true) return;
is the best solution that I use. you can use if(condition) testing that gives true or false.
Why?
return;
alone : gives Error:(105, 9) java: unreachable statementpublic class Main
{
public static void main(String[] args) {
System.out.println("Hello World 1st code ");
return;
System.out.println("Hello World 2nd code ");
}
}
Compilation failed due to following error(s).
Main.java:14: error: unreachable statement
System.out.println("Hello World 2nd code ");
^
1 error
you can test it online using : https://www.onlinegdb.com/online_java_compiler
exit(0);
: as you know terminate all the program (The java.lang.System.exit() method terminates the currently running Java Virtual Machine. See ref.) ; So exit , doesn't allow to break only the method and continue the execution of the callerYou can test the 3 techniques using the following code:
public class Main
{
public static void do_something(int i)
{
System.out.println(" i : "+i);
// break the method
/// System.exit(0); // stop all the program
/// return; // Main.java:20: error: unreachable statemen
if(true) return;
// do some computing
int res = i*i;
System.out.println(" res : "+res);
}
public static void main(String[] args) {
for (int i = 0; i <5; i++)
{
do_something(i);
}
System.out.println("Ouiiiii , work finished ");
}
}
The result:
i : 0
i : 1
i : 2
i : 3
i : 4
Ouiiiii , work finished
Upvotes: 3
Reputation: 41
Use the return keyword to exit from a method.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Pls note: We may use break statements which are used to break/exit only from a loop, and not the entire program.
To exit from program: System.exit() Method:
System.exit
has status code, which tells about the termination, such as:
exit(0) : Indicates successful termination.
exit(1) or exit(-1) or any non-zero value – indicates unsuccessful termination.
Upvotes: 2
Reputation:
use return
to exit from a method.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Here's another example
int price = quantity * 5;
if (hasCream) {
price=price + 1;
}
if (haschocolat) {
price=price + 2;
}
return price;
Upvotes: 3
Reputation: 81074
Use the return
keyword to exit from a method.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
From the Java Tutorial that I linked to above:
Any method declared void doesn't return a value. It does not need to contain a return statement, but it may do so. In such a case, a return statement can be used to branch out of a control flow block and exit the method and is simply used like this:
return;
Upvotes: 335
Reputation: 21748
If you are deeply in recursion inside recursive method, throwing and catching exception may be an option.
Unlike Return that returns only one level up, exception would break out of recursive method as well into the code that initially called it, where it can be catched.
Upvotes: 7
Reputation: 22715
To add to the other answers, you can also exit a method by throwing an exception manually:
throw new Exception();
Upvotes: 52
Reputation: 3813
How to break out in java??
Ans: Best way: System.exit(0);
Java language provides three jump statemnts that allow you to interrupt the normal flow of program.
These include break , continue ,return ,labelled break statement for e.g
import java.util.Scanner;
class demo
{
public static void main(String args[])
{
outerLoop://Label
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<=j;k++)
{
System.out.print(k+"\t");
break outerLoop;
}
System.out.println();
}
System.out.println();
}
}
}
Output: 1
Now Note below Program:
import java.util.Scanner;
class demo
{
public static void main(String args[])
{
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<=j;k++)
{
System.out.print(k+"\t");
break ;
}
}
System.out.println();
}
}
}
output:
1
11
111
1111
and so on upto
1111111111
Similarly you can use continue statement just replace break with continue in above example.
Things to Remember :
A case label cannot contain a runtime expressions involving variable or method calls
outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved
Upvotes: 24