Je regarde n tutoriel de recherche de chemin et j'ai remarqué une instruction return
à l'intérieur d'une méthode void
(classe PathTest
, ligne 126):
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
Je suis novice à Java. Quelqu'un peut-il me dire pourquoi c'est là? Autant que je sache, return
à l'intérieur d'une méthode vide n'est pas autorisé.
Il suffit de quitter la méthode à ce stade. Une fois que 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 que du code est inaccessible:
if (n == 3) {
return;
youWillGetAnError(); //compiler error here
}
Vous pouvez avoir return
dans une méthode void, mais vous ne pouvez pas renvoyer n'importe quelle valeur (comme dans return 5;
), c’est pourquoi ils l’appellent une méthode void. Certaines personnes mettent toujours explicitement fin aux méthodes void avec une instruction return, mais ce n'est pas obligatoire. Il peut être utilisé pour quitter une fonction tôt, cependant:
void someFunct(int arg)
{
if (arg == 0)
{
//Leave because this is a bad value
return;
}
//Otherwise, do something
}
Le mot-clé fait simplement apparaître une image de la pile d'appels, renvoyant le contrôle à la ligne qui suit l'appel de la fonction.
Le Java langage spécification indique que vous pouvez avoir un retour sans expression si votre méthode retourne void.
Il fonctionne comme un retour de fonction avec un paramètre spécifié, à ceci près qu'il ne renvoie rien car il n'y a rien à retourner et le contrôle est retransféré à la méthode appelante.
Il quitte la fonction et ne renvoie rien.
Quelque chose comme return 1;
serait incorrect puisqu'il retourne le nombre entier 1.
Voir cet exemple, vous souhaitez ajouter à la liste conditionnellement. Sans le mot "return", tous les ifs seront exécutés et ajoutés à 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;
}
}