Problem avec system.out.println() de java

kain -  
 kain -
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.

2 réponses

arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
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
kain
 
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   Statut Contributeur Dernière intervention   1 293 > kain
 
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   Statut Contributeur Dernière intervention  
 
Bonjour,
je vais voir avec les types retournés.
Merci.
0
Hector Valdes
 
Ce que tu dis est absurde étant donné que si utilises void, ta méthode est censé ne renvoyé aucun résultat!
0