164 votes

Comment sortir ou quitter une méthode en Java ?

Le mot-clé break en Java peut être utilisé pour sortir d'une boucle ou d'une instruction de commutation. Y a-t-il quelque chose qui puisse être utilisé pour sortir d'une méthode ?

2 votes

Cette question mérite également d'être vérifiée : stackoverflow.com/q/18188123/2182237

316voto

Mark Peters Points 42201

Utilisez le return pour sortir d'une méthode.

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

Extrait du tutoriel Java dont j'ai donné le lien ci-dessus :

Toute méthode déclarée void ne renvoie pas de valeur. Elle n'a pas besoin de contenir une déclaration de retour, mais elle peut le faire. Dans ce cas, une instruction de retour peut être utilisée pour sortir d'un bloc de flux de contrôle et quitter la méthode ; elle est simplement utilisée comme ceci :

return;

0 votes

Cela fonctionnera-t-il pour sortir d'un constructeur ? Je sais que c'est un peu étrange mais j'ai besoin de ce hack.

0 votes

J'obtiens une erreur en quittant la fonction avec le type de retour int[] en utilisant return ; dans la condition if. Pouvez-vous m'expliquer pourquoi ?

0 votes

@Vocado_xiix : cet exemple est pour revenir d'un void méthode. Si votre méthode doit renvoyer une valeur, ce sera quelque chose comme return array; donde array est quelque chose que vous avez créé dans la méthode.

52voto

Jops Points 6734

Pour compléter les autres réponses, vous pouvez également quitter une méthode en lancer une exception manuellement :

throw new Exception();

enter image description here

22voto

Isabella Engineer Points 341

Comment s'évader en java ?

Réponse : le meilleur moyen : System.exit(0);

Le langage Java fournit trois états de saut qui vous permettent d'interrompre le déroulement normal du programme.

Il s'agit notamment de rupture , continuer , retourner , déclaration de rupture étiquetée par exemple

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

Sortie : 1

Maintenant, notez le programme ci-dessous :

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

sortie :

1
11
111
1111

and so on upto

1111111111

De même, vous pouvez utiliser l'instruction continue en remplaçant break par continue dans l'exemple ci-dessus.

Choses à retenir :

Une étiquette de cas ne peut pas contenir d'expressions d'exécution impliquant des appels de variables ou de méthodes.

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

7voto

Si vous êtes profondément dans la récursion à l'intérieur de la méthode récursive, lancer et attraper une exception peut être une option.

Contrairement à Return qui ne renvoie qu'un seul niveau supérieur, l'exception sortirait de la méthode récursive et se retrouverait dans le code qui l'a initialement appelée, où elle peut être attrapée.

3voto

Utiliser return pour sortir d'une méthode.

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

Voici un autre exemple

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X