Bonjour,
Je travaille sur un TP d'informatique en Java et j'ai un petit problème de débutant, j'espère que vous pourrez m'aider :
Je voudrai récupérer la valeur d'une variable du main de mon programme dans une autre classe.
Je dois avoir un problème de syntaxe :
__________________________________________________________________________________
import java.util.Scanner;
public class CTabNotes {
private float [] tab;
private int Nbcasesutil;
private int i;
private float val=1;
int choix = ClassePrincipale.main(String[]args);
public CTabNotes() {
tab = new float[100];
Nbcasesutil = 0;
if (choix = 1){
while(i<100 && val >=0){
System.out.println("Saisir une note comprise entre 0 et 20 ou négative pour sortir :");
Scanner clavier = new Scanner(System.in);
val=clavier.nextFloat();
if(val>=0 & val<=20){
tab[i] = val;
i++;
Nbcasesutil++;
}
}
}
}
...
import java.util.Scanner;
public class ClassePrincipale {
public static void main(String[]args){
private int choix;
System.out.println("Comment voulez-vous entrer vos notes ? Tapez " +
" 1 – sous forme de tableau non trié" +
" 2 – sous forme de tableau trié" +
" 3 – sous forme de liste non triée" +
" 4 – sous forme de liste triée");
Scanner clavier = new Scanner(System.in);
choix = clavier.nextInt();
switch(choix){ ...
________________________________________________________________________
C'est donc la variable choix que je veux récupérer dans l'autre classe.
J'ai essayé avec // int choix = ClassePrincipale.main(String[]args);// mais ça ne fonctionne pas...
Il me signale aussi une erreur dans la déclaration de la variable choix dans le main...
Merci de bien vouloir m'aider.
vince Le 30/01/2010 à 14:50Edité par yAro le 30/01/2010 à 15:13 (la balise PRE permet un affichage qui conserve l'indentation...)
import java.util.Scanner;
public class CTabNotes {
private float [] tab;
private int Nbcasesutil;
private int i;
private float val=1;
int choix = ClassePrincipale.main(String[]args);
public CTabNotes() {
tab = new float[100];
Nbcasesutil = 0;
if (choix = 1){
while(i<100 && val >=0){
System.out.println("Saisir une note comprise entre 0 et 20 ou négative pour sortir :");
Scanner clavier = new Scanner(System.in);
val=clavier.nextFloat();
if(val>=0 & val<=20){
tab[i] = val;
i++;
Nbcasesutil++;
}
}
}
}
...
import java.util.Scanner;
public class ClassePrincipale {
public static void main(String[]args){
private int choix;
System.out.println("Comment voulez-vous entrer vos notes ? Tapez " +
" 1 – sous forme de tableau non trié" +
" 2 – sous forme de tableau trié" +
" 3 – sous forme de liste non triée" +
" 4 – sous forme de liste triée");
Scanner clavier = new Scanner(System.in);
choix = clavier.nextInt();
switch(choix){ ...
Sasume Le 30/01/2010 à 14:55Edité par Sasume le 30/01/2010 à 14:57 Il faut que tu donnes le type de la variable choix lors de sa déclaration (comme tu l’as fait pour la variable clavier). [edit : je viens de voir que tu l’as fait, je ne regardais pas la bonne ligne. Donc ton pb vient du fait que le qualifieur de visibilité private n’a pas de sens à l’intérieur d’une fontion.]
Pour l’utiliser ailleurs que dans la fonction main, tu peux la transmettre en paramètre d’une fonction.
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
vince Le 30/01/2010 à 14:55Edité par yAro le 30/01/2010 à 15:13 je ne suis pas expert en java mais si tu veux que
int choix = ClassePrincipale.main(String[]args);
fonctionne il faut peut être que ta déclaration de main renvoie autre chose que "void" d'une part et que args soit valorisé d'autre part...
(edit : cross avec sasume)
Pourquoi as-tu besoin de récupérer la variable CH ?
Pourquoi tu ne la fournis pas dans le constructeur de la classe CTabNotes ?
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
J'en ai besoin car en fonction du choix de l'utilisateur j'exécute une partie ou la totalité des instructions contenues dans le constructeur.
En tout cas merci pour votre attention, je trouve ça louable, il n'y en a pas beaucoup qui prenne le temps de regarder les problèmes des autres.
C'est bon j'ai trouvé la solution c'était tout bête. En tout cas merci pour vos réponses.
quel eté le pb finalement???