cs_hakim01
Messages postés2Date d'inscriptiondimanche 6 juin 2004StatutMembreDernière intervention14 mars 2011
-
14 mars 2011 à 00:50
Utilisateur anonyme -
21 mars 2011 à 21:47
bonjour, j'ai le problème suivant, pour l'appelle de procedure(methode) en java
mon objectif est de récupérer les champs de la methode saisieValeur, pour les éxploiter dans le menu principal.
moi je veut récupérer les champs: soldecourrant, versement, achats de la méthode saisievaleur, pour les exploiter dans d'autre fonction dans le programme principale,
mais j'ai l'érreur: il faut initialiser les champs dans la méthode principale,et ça il récupére pâs les valeurs que j'ai passé dans la méthode Saisievaleur.
voila le code, merci pour votre réponse:
import java.text.DecimalFormat;
import java.util.Scanner;
public class TextReleve {
public static void main (String args[]){
Scanner readln= new Scanner(System.in);
double soldecourrant,soldeprecedent,versement,achats, nouveausolde;
double interet,min;
//appelle a la fonction saisieValeur
saisieValeur(soldecourrant,soldeprecedent,versement,achats,readln);
//appelle a la fonction intérêt
interet=calculInteret(soldecourrant,readln);
//les charge que le client devra payer
nouveausolde=soldecourrant+achats;
//appelle a la fonction minimum pour le calcul du minimum exigé
min=minimum(nouveausolde,readln);
//affichage du resultat
affichageresultat( soldeprecedent,versement, soldecourrant,interet,nouveausolde,min, readln );
cs_hakim01
Messages postés2Date d'inscriptiondimanche 6 juin 2004StatutMembreDernière intervention14 mars 2011 14 mars 2011 à 17:04
effectivement, j'ai fait, ca, mais apres à l'éxécution, le programme principale, prend les valeurs 0.0, et nom les valeurs que j'ai pas dans la procedure saisieValeur. donc si pas intéressant. si ca le soucis.
Si j'ai bien compris tu as des attributs dans ton main et tu veux que ta méthode saisieValeur(...) modifie ces attributs là ?
Le truc je pense (enfin, si j'ai bien compris ce que tu veux faire), c'est que tu passes tes attributs dans ta méthode. Or le soucis c'est que les doubles, les int... sont passés par valeur. Ils seront alors propres à ta méthode et donc les modifs faites sur ces attributs concerneront que ta méthode.
L'idéal serait que tu mettes tes attributs static et que tu appelles simplement ta méthode. D'ailleurs, je em demande si ça vaut la peine de mettre ça en statique.
Un truc de ce genre (dis le si je ne réponds pas à ton problème ) :
public class TextReleve {
public static void main (String args[]){
static Scanner readln= new Scanner(System.in);
static double soldecourrant,soldeprecedent,versement,achats, nouveausolde;
static double interet,min;
//appelle a la fonction saisieValeur
saisieValeur();
}
private static saisieValeur (){
String temp;
System.out.println ("\nveuillez tapez votre solde precedent:");
soldeprecedent=readln.nextDouble();
while(soldeprecedent<0){
temp = readln.nextLine();
System.out.print("S.V.P, taper une valeur sup à 0 : ");
soldeprecedent=readln.nextDouble();
}
//le versement du client
System.out.println ("\nveuillez tapez votre versement:");
versement=readln.nextDouble();
while(versement<0){
temp=readln.nextLine();
System.out.print("S.V.P, taper une valeur supérieur à 0:");
versement=readln.nextDouble();
}
//les achat du client;
System.out.println ("\nveuillez tapez vos achats:");
achats=readln.nextDouble();
while(achat<0){
temp=readln.nextLine();
System.out.print("S.V.P, taper une valeur supérieur à 0:");
achats=readln.nextDouble();
}
soldecourrant=soldeprecedent-versement;
//return soldecourrant;
}
}
Après, je sais pas si j'ai compris ce que tu voulais faire...