Utiliser une procedure en java

Fermé
harizon007 Messages postés 17 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 6 décembre 2011 - 14 mars 2011 à 00:53
 Utilisateur anonyme - 14 mars 2011 à 09:30
Bonjour,

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 );


}


private static saisieValeur ( double soldecour,double soldprec, double versem,double achat, Scanner readln){


double soldecourrant,soldeprecedent,achats, versement;
String temp;
//demande au client de rentrer le solde précedent

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;
}

}




A voir également:

1 réponse

Utilisateur anonyme
14 mars 2011 à 09:30
Salut,

Je te conseille de déclarer tes valeurs en variables de classe comme ceci:

public class TextReleve
   {
      private static double soldecourrant,soldeprecedent,versement,achats, nouveausolde; // <<<<<<<<<<
// ainsi que Scanner:
      private static Scanner readln= new Scanner(System.in);
// et donc ne pas passer readln en paramètre
      
      public static void main (String args[])
.............
............

car elles doivent être visibles dans toutes les méthodes

Il faudra bien entendu ne plus les déclarer ailleurs.

Tu dois également mettre saisieValeur en void:

private static void saisieValeur( double soldecour,double soldprec, double versem,double achat) {


Cordialement,

Dan
1