Como quebrar ou sair de um método em Java?

123

A palavra-chave breakem Java pode ser usada para interromper uma instrução loop ou switch. Existe algo que possa ser usado para quebrar um método?

Todos
fonte
2
Esta questão também pode ser útil verificar: stackoverflow.com/q/18188123/2182237
Don

Respostas:

255

Use a returnpalavra-chave para sair de um método.

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

No Tutorial Java ao qual vinculei acima:

Qualquer método declarado nulo não retorna um valor. Ele não precisa conter uma declaração de retorno, mas pode fazê-lo. Nesse caso, uma declaração de retorno pode ser usada para ramificar fora de um bloco de fluxo de controle e sair do método e é simplesmente usada assim:

return;
Mark Peters
fonte
Isso funcionará para sair de um construtor? Eu sei que é um pouco estranho, mas eu preciso desse hack.
stillanoob
44

Para adicionar às outras respostas, você também pode sair de um método lançando uma exceção manualmente:

throw new Exception();

insira a descrição da imagem aqui

Jops
fonte
18

Como sair em java?

Resp: Melhor maneira: System.exit(0);

A linguagem Java fornece três declarações de salto que permitem interromper o fluxo normal do programa.

Isso inclui quebra , continuação , retorno , declaração de quebra rotulada, por exemplo

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();
            }
    }   
}

Resultado: 1

Agora observe abaixo o programa:

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();
            }
    }   
}

resultado:

1
11
111
1111

and so on upto

1111111111

Da mesma forma, você pode usar a instrução continue apenas substituindo break por continue no exemplo acima.

Coisas para lembrar :

Um rótulo de caso não pode conter expressões de tempo de execução que envolvam chamadas de variável ou método

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

Se você estiver profundamente recursivo dentro do método recursivo, lançar e capturar exceções pode ser uma opção.

Ao contrário de Return, que retorna apenas um nível acima, a exceção também quebraria o método recursivo no código que o chamou inicialmente, onde pode ser detectado.

Audrius Meskauskas
fonte
1

use returnpara sair de um método.

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

Aqui está outro exemplo

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
kiyah
fonte