Ключевое слово break
в Java можно использовать для выхода из цикла или оператора switch. Есть ли что-нибудь, что можно использовать для отказа от метода?
Как вырваться или выйти из метода в Java?
Ответы (7)
Используйте ключевое слово return
для выхода из метода.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Из учебника по Java, на который я ссылался выше:
Любой метод, объявленный как void, не возвращает значение. Он не обязательно должен содержать оператор возврата, но он может его содержать. В таком случае можно использовать оператор return для выхода из блока потока управления и выхода из метода, и он просто используется следующим образом:
return;
Чтобы добавить к другим ответам, вы также можете выйти из метода, сгенерировав исключение вручную:
throw new Exception();
Как вырваться в java??
Ответ: Лучший способ: System.exit(0);
Язык Java предоставляет три оператора перехода, которые позволяют прервать нормальный ход программы.
К ним относятся break , continue , return , помеченный оператор break, например
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();
}
}
}
Выход: 1
Теперь обратите внимание на программу ниже:
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();
}
}
}
выход:
1
11
111
1111
and so on upto
1111111111
Точно так же вы можете использовать оператор continue, просто заменив break на continue в приведенном выше примере.
То, что нужно запомнить :
Метка случая не может содержать выражения времени выполнения, включающие вызовы переменных или методов.
outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved
Если вы глубоко погружены в рекурсию внутри рекурсивного метода, возможно создание и перехват исключения.
В отличие от Return, который возвращает только один уровень вверх, исключение вырвется из рекурсивного метода, а также в код, который изначально его вызвал, где его можно перехватить.
используйте return
для выхода из метода.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Вот еще один пример
int price = quantity * 5;
if (hasCream) {
price=price + 1;
}
if (haschocolat) {
price=price + 2;
}
return price;
Используйте ключевое слово return для выхода из метода.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Пожалуйста, обратите внимание: мы можем использовать операторы break, которые используются для прерывания/выхода только из цикла, а не всей программы.
Для выхода из программы: Метод System.exit():System.exit
имеет код состояния, сообщающий о завершении, например:
exit(0): Указывает на успешное завершение.
exit(1) или exit(-1) или любое ненулевое значение – указывает на неудачное завершение.
if (true) return;
— лучшее решение, которое я использую. вы можете использовать проверку if (условие), которая дает true или false.
Почему?
- использование только
return;
: дает Ошибку: (105, 9) java: недостижимый оператор
public class Main
{
public static void main(String[] args) {
System.out.println("Hello World 1st code ");
return;
System.out.println("Hello World 2nd code ");
}
}
Компиляция не удалась из-за следующих ошибок.
Main.java:14: error: unreachable statement
System.out.println("Hello World 2nd code ");
^
1 error
вы можете протестировать его онлайн, используя: https://www.onlinegdb.com/online_java_compiler
- используя exit(int status) пример
exit(0);
: как вы знаете, завершает всю программу (метод java.lang.System.exit() завершает работающую в данный момент виртуальную машину Java. См. ссылку); Поэтому exit не позволяет сломать только метод и продолжить выполнение вызывающего объекта
Вы можете протестировать 3 метода, используя следующий код:
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 ");
}
}
Результат:
i : 0
i : 1
i : 2
i : 3
i : 4
Ouiiiii , work finished