Salut à tous,
je suis un novice en matière de programmation et j'aimerai savoir à quoi sert et que signifie "return" en java.
Merci!
Version imprimable
Salut à tous,
je suis un novice en matière de programmation et j'aimerai savoir à quoi sert et que signifie "return" en java.
Merci!
Salut,
le mot clé return sert à quitter une méthode et à retourner (d'ou le nom) à la méthode appelante.
lorsque la méthode est du type void, return suffit pour quitter la méthode.
exemple :
l'exécution de ce programme va afficher dans la console :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class Exemple() { public static void main(String[] args) { System.out.println("avant appel"); test(); System.out.println("après appel"); } public static void test() { System.out.println("dans test()"); return; // retourne à la méthode qui a appeler test(); } }
avant appel
dans test()
après appel
si la méthode à un type, return permet de retourner un résultat, du type de la méthode
exemple :
va afficher :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public class Exemple2() { public static void main(String[] args) { System.out.println("avant appel"); int resultat=test(); System.out.println("après appel"); System.out.println("résultat : " + resultat); } public static int test() { System.out.println("dans test()"); return 5; // retourne à la méthode qui a appeler test() en retournant la valeur 5; } }
l'exécution de ce programme va afficher dans la console :
avant appel
dans test()
après appel
résultat : 5
bien que cela soit interdit en programmation dite structurée (un seul point d'entrée, un seul point de sortie), on peut mettre return n'importe ou dans la méthode, mais le code qui suit le return doit pouvoir être éxécuter pour au moins une condition.
exemple :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public static class Exemple3() { public static void main(String[] args) { boolean resultat=contient("abcd","cde"); } /** * Teste si l'un de caractères contenus dans c est dans s */ public static boolean contient(String s, String c) { for(int i=0; i<s.length(); i++) { for(int j=0; j<car.length(); j++) { if ( s.charAt(i)==c.charAt(j) ) { return true; } } } return false; } // version programmation structurée public static boolean contient2(String s, String c) { boolean trouve=false; for(int i=0; !trouve && i<s.length(); i++) { for(int j=0; !trouve && j<car.length(); j++) { if ( s.charAt(i)==c.charAt(j) ) { trouve=true; } } } return trouve; } // version interdite car code non exécutable suivant le return /*public static boolean contient3(String s, String c) { boolean trouve=false; for(int i=0; !trouve && i<s.length(); i++) { for(int j=0; !trouve && j<car.length(); j++) { if ( s.charAt(i)==c.charAt(j) ) { trouve=true; } } } return trouve; // code qui suit non exécutable if ( trouve ) { System.out.println("trouvé"); } }*/ }
quand la méthode n'a pas de type, on est pas obligé de mettre return, la fin de la méthode fait la même chose (on reste évidement pas bloqué à la fin de la méthode)
affichera :Code:
1
2
3
4
5
6
7
8
9
10
11
12 public class Exemple4() { public static void main(String[] args) { test("salut !"); test("ça va ?"); } public static void test(String parametre) { System.out.println(parametre); } }
salut !
ça va ?