Problem avec system.out.println() de java

Fermé
kain - 20 sept. 2008 à 19:38
 kain - 23 sept. 2008 à 12:33
Bonjour,

Je veux écrire sur l'écran le résultat d'une méthode , par exemple public void cal (arg a),et cette méthode ( calc()) appartient à une class calcul , mais j'ai un probleme avec la méthode system.out.println(calcul.calc(x)); . J'ai le message d'erreur suivant:
'void' type is not allowed here

Sincère remerciement.
A voir également:

2 réponses

arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
20 sept. 2008 à 21:36
Bonsoir,

Cela est tout à fait normal.

En effet la fonction System.out.println doit afficher quelque chose donc une vrai variable avec un valeur non null.

Ici l'erreur te dit void type is not allowed here, ce qui est normal puisque tu lui fait directement System.out.println(calcul.calc()) .

OR calcul.calc() ne retourne aucun résultat ou variable si tu préfères qui puisse être affiché du genre un entier ou une String, puisque la fonction calc() est définie en public void et non en public String calc() ou encore public int calc() par exemple.

Tu ne peux pas faire non plus : int resultat = calc(arg a); puisque calc() comme dit plus haut est définie en VOID.

Donc au lieu de mettre public void calc(arg a), remplace ceci par public int calc(arg a) ou encore int par le type de variable qui doit être retourné. ET ne pas oublier de faire un return.

Pour récapituler et par exemple :

public class calcul
{
int a = 10;

public calcul()
{
.......
System.out.println("Résultat de l'opération : "+calc(a));
}

public int calc(int parameter)
{
System.out.println("On ne fait que retourner comme résultat la valeur de l'entier passé en paramètre");
return parameter;
}
}

Voilà j'espère que tu auras compris et si tu as des questions n'hésite pas.

1
Bonjour,

Merci beaucoup, c'est très gentil de ta part de répondre.

OK, j'ai compris ma faute, mais le problème est que ma méthode peut retourné des résultats avec des types différents? c'est pour cette raison que j'ai pensé d'utiliser 'void'.

Merci.
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291 > kain
22 sept. 2008 à 13:33
Non une fonction ne peut retourner des types différents. Sinon tu es obligé de faire une fonction par type, du genre :

calc(String string)
calc(int integer)
etc ...

Une seule fonction pour un seul type de dopnnées.

Mais tu peux très bien faire plusieurs fonctions calc mais avec un paramétrage différent, un coup une String, un coup un int comme j'ai écrit plus haut.
-1
kain > arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016
23 sept. 2008 à 12:33
Bonjour,
je vais voir avec les types retournés.
Merci.
0
Hector Valdes
22 sept. 2008 à 11:08
Ce que tu dis est absurde étant donné que si utilises void, ta méthode est censé ne renvoyé aucun résultat!
0