Qu'est-ce que le mot-clé de retour faire dans une méthode vide en Java?
Question
Je regarde un chemin trouver tutoriel et je remarqué une instruction return
intérieur d'une méthode de void
(classe PathTest
, ligne 126):
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
Je suis un novice à Java. Quelqu'un peut-il me dire pourquoi il est là? Pour autant que je savais, return
l'intérieur d'une méthode vide n'est pas autorisé.
La solution
Il a juste sortie de la méthode à ce moment-là. Une fois return
est exécuté, le reste du code ne sera pas exécuté.
par exemple.
public void test(int n) {
if (n == 1) {
return;
}
else if (n == 2) {
doStuff();
return;
}
doOtherStuff();
}
Notez que le compilateur est assez intelligent pour vous dire un peu de code ne peut pas être atteint:
if (n == 3) {
return;
youWillGetAnError(); //compiler error here
}
Autres conseils
Vous pouvez avoir return
dans une méthode vide, vous ne pouvez pas retourner une valeur (comme dans return 5;
), c'est pourquoi ils appellent vide méthode . Certaines personnes finissent toujours explicitement des méthodes vides avec une déclaration de retour, mais ce n'est pas obligatoire. Il peut permet de quitter une fonction début, cependant:
void someFunct(int arg)
{
if (arg == 0)
{
//Leave because this is a bad value
return;
}
//Otherwise, do something
}
Le mot-clé apparaît simplement une trame à partir de la pile d'appel retournant le contrôle de la ligne suite à l'appel de la fonction.
La spécification langage Java de rel="noreferrer"> dit que vous peut avoir le retour sans expression si votre méthode retourne void.
Il fonctionne même comme un retour pour la fonction d'un paramètre spécifié, sauf qu'il ne retourne rien, car il n'y a rien à revenir et le contrôle est rendu à la méthode d'appel.
Il sort de la fonction et retourne rien.
Quelque chose comme return 1;
serait incorrect car il retourne entier 1.
Voir cet exemple, vous souhaitez ajouter à la liste conditionnelle. Sans le mot « retour », tous les ifs seront exécutés et ajouter à la liste de tableaux!
Arraylist<String> list = new ArrayList<>();
public void addingToTheList() {
if(isSunday()) {
list.add("Pray today")
return;
}
if(isMonday()) {
list.add("Work today"
return;
}
if(isTuesday()) {
list.add("Tr today")
return;
}
}