Paramètres en sortie?

xaxa66 Messages postés 6 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 8 février 2006 - 8 févr. 2006 à 20:05
xaxa66 Messages postés 6 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 8 février 2006 - 8 févr. 2006 à 23:04
bonjour à tous!

Je commence le java (en gros mes connaissances se limitent à peu près au livre "java 2 pour les nuls") et j'ai un exercice qui me demande de faire une fonction qui n'a pas de valeur retour (ça c'est ok), mais qui renvoie deux tableaux en "paramètres en sortie" (mon problème est ici). J'ai cherché, mais je ne comprends pas comment une fonction qui n'a pas de valeur de retour peut sortir des paramètres. je suis sûr que la réponse est très simple, vu que le reste de l'exercice l'est, mais je sèche.

merci d'avance pour votre aide.

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
8 févr. 2006 à 20:45
Des fonctions qui ne renvoient rien peuvent quand même retourner des valeurs en passant par les paramètres qui lui sont passés, cela s'appelle le passage par référence (ce qui peut être dangeureux si on n'y fait pas gaffe !).

Le principe ? Tout simplement modifier les valeurs des paramètres de la fonction :

class Entier {


public int i;


public Entier(int i) {


this.i = i;


}


}





public void incrementerEntier(Entier entier) {


entier.i += 1;


}

Le principe reste le même pour les tableaux.

_
0
cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 7
8 févr. 2006 à 20:49
Quand tu passes des tableaux en paramètres, ils sont passé par référence, donc à la fin de la fonction les tableaux initiaux ont été modifiés.

"A game is a series of interesting choices." Sid Meier
0
xaxa66 Messages postés 6 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 8 février 2006
8 févr. 2006 à 23:04
ok merci, je pense que je dois effectivement simplement modifier des tableaux existants, et non, comme je le pensais, créer des nouveaux tableaux et les sortir.

merci pour vos réponses qui m'ont montré la bonne voie.
0