Bonsoir, je commence les classes sur un petit programme tout simple,
j'ai une erreur à la compilation dans la boucle for "cannot find symbol
variable nom et variable Montan",c'est des variables d'instances de la classe Client, il les connait!
Si quequ'un a une petite idée ou explication,Merci
import java.util.Scanner;
class Client{
String nom;
double Montant;
Client(String nom,double Montant){
this.nom=nom;
this.Montant=Montant;
}
void afficherClientMontant(){
Terminal.ecrireStringln("nom du client: " + this.nom);
Terminal.ecrireString(" le montant : " + this.Montant);
}
}
public class Essai_1Bis{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
Client[]tabClient=new Client[5];
for (int i=0;i<tabClient.length;i++){
tabClient[i]=new Client(nom,Montant);
System.out.print("saisir nom Client" +( i+1) + " : ");
tabClient[i].nom=sc.nextLine();
System.out.print("saisir Montant de " +( i+1) + " : ");
tabClient[i].Montant=sc.nextDouble();
sc.nextLine();;
}
int som=0;
int somSup=0;
for (int i=0;i<tabClient.length;i++){
som+=tabClient[i].Montant;
if(tabClient[i].Montant>=100)
somSup++;
}
System.out.println("la somme globale vaut :" + som);
System.out.println("il y a " + somSup + "sup a 100 euros");
}
}
Bonsoir, je commence les classes sur un petit programme tout simple,
j'ai une erreur à la compilation dans la boucle for "cannot find symbol
variable nom et variable Montan",c'est des variables d'instances de la classe Client, il les connait!
Si quequ'un a une petite idée ou explication,Merci
import java.util.Scanner;
class Client{
String nom;
double Montant;
Client(String nom,double Montant){
this.nom=nom;
this.Montant=Montant;
}
void afficherClientMontant(){
Terminal.ecrireStringln("nom du client: " + this.nom);
Terminal.ecrireString(" le montant : " + this.Montant);
}
}
public class Essai_1Bis{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
Client[]tabClient=new Client[5];
for (int i=0;i<tabClient.length;i++){
tabClient[i]=new Client(nom,Montant);
System.out.print("saisir nom Client" +( i+1) + " : ");
tabClient[i].nom=sc.nextLine();
System.out.print("saisir Montant de " +( i+1) + " : ");
tabClient[i].Montant=sc.nextDouble();
sc.nextLine();;
}
int som=0;
int somSup=0;
for (int i=0;i<tabClient.length;i++){
som+=tabClient[i].Montant;
if(tabClient[i].Montant>=100)
somSup++;
}
System.out.println("la somme globale vaut :" + som);
System.out.println("il y a " + somSup + "sup a 100 euros");
}
}
Bonjour,
Le problème vient d'ici :
tabClient[i]=new Client(nom,Montant);
Ici, nom et Montant ne sont pas des variables de classes, mais seulement des variables, qui doivent être crées (et initialisées) comme tout autre objet java.
Pour regler ton problème, tu as deux posibilité (une plus propre que l'autre) :
- Creer un constructeur Client qui ne prend aucun paramètre, où tu ilitialiera tes variables nom et client à des variavles par défaut (style "" por nom et 0 pour Montant)
- L'autre méthode, un peu plus sale, est de ne pas toucher à ton contructeur, mais d'instancier ton tabClient[i] . Ceci donnerait :
for (int i=0;i<tabClient.length;i++){
tabClient[i]=new Client("", 0);
System.out.print("saisir nom Client" +( i+1) + " : ");
tabClient[i].nom=sc.nextLine();
System.out.print("saisir Montant de " +( i+1) + " : ");
tabClient[i].Montant=sc.nextDouble();
sc.nextLine();;
}
constructeur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.