Як вийти або вийти з методу на Java?


123

Ключове слово breakв Java може бути використане для виходу з оператора циклу або перемикання. Чи є щось, що може бути використане для відриву від методу?


2
Це питання також варто перевірити: stackoverflow.com/q/18188123/2182237
Дон

Відповіді:


256

Використовуйте returnключове слово для виходу з методу.

public void someMethod() {
    //... a bunch of code ...
    if (someCondition()) {
        return;
    }
    //... otherwise do the following...
}

З навчального посібника Java, до якого я посилався вище:

Будь-який метод, оголошений недійсним, не повертає значення. Він не повинен містити зворотну заяву, але може це зробити. У такому випадку оператор return може бути використаний для розгалуження блоку потоку управління та виходу з методу і просто використовується так:

return;

Чи буде це спрацьовувати для виходу з конструктора? Я знаю, що це трохи дивно, але мені потрібен цей злом.
stilanoob

44

Щоб додати до інших відповідей, ви також можете вийти з методу, кинувши виняток вручну:

throw new Exception();

введіть тут опис зображення


18

Як вирватися в java ??

Відповідь: Найкращий спосіб: System.exit(0);

Мова Java забезпечує три стадії стрибка, що дозволяють перервати нормальний потік програми.

До них відносяться перерва , продовження , повернення , мітка заяви про перерву, наприклад

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

Аналогічно ви можете використовувати оператор продовження просто замінити перерву на продовження у наведеному вище прикладі.

Що потрібно пам’ятати:

Мітка регістру не може містити вирази часу виконання, що включають виклики змінних або методів

outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved

4

Якщо ви глибоко перебуваєте в рекурсії всередині рекурсивного методу, викид та вилов винятку може бути варіантом.

На відміну від Return, який повертає лише один рівень вгору, виняток буде вибиватися з рекурсивного методу, а також до коду, який його спочатку викликав, де його можна наздогнати.


1

використовувати 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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.