Rechercher : dans
Par :

Variable cannot be resolved

Dernière réponse le 26 mar 2009 à 20:41:03 Absot, le 26 mar 2009 à 18:21:34 
 Signaler ce message aux modérateurs

Bonjour, je suis en train de me faire une calculette toute simple en java et normalement elle est finie sauf que j'ai 4 fois l'erreur "choix cannot be resolved" à la ligne 55 et la ligne 55 est mon while, je vous montre mon code:

----------------------------------------------------------------------------------------
import java.util.Scanner;


public class sdz1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner lire = new Scanner (System.in);
do{
double premier;
double second;
int choix;
double res;
System.out.println("Saisissez un premier nombre");
premier = lire.nextDouble();
System.out.println("Saisissez un deuxieme nombre");
second = lire.nextDouble();
System.out.print("1 pour ajouter /n" +
"2 pour soustraire /n" +
"3 pour multiplier /n" +
"4 pour diviser /n" +
"5 pour quitter");

choix = lire.nextInt();
switch (choix){

case '1':
res = (premier+second);
System.out.println("Le resultat est " + res);
break;

case '2':
res = (premier-second);
System.out.println("Le resultat est " + res);
break;

case '3':
res = (premier*second);
System.out.println("Le resultat est " + res);
break;

case '4':
res = (premier/second);
System.out.println("Le resultat est " + res);
break;

Default:
System.out.println("Erreur de programmation");
}
}
while ( (choix ==1) || (choix ==2) || (choix ==3) || (choix ==4) );
}
}

---------------------------------------------------------------------------------------------

J'ai essayé en mettant choix =='1' mais ça ne change rien, j'ai peut-être mal pensé en programmant et je devrais changer quelques trucs?

Configuration: Windows Vista
Opera 9.63

Meilleures réponses pour « variable cannot be resolved » dans :
[Windows] Fichier .CAB endommagé ou manquant VoirUn fichier CAB est un fichier contenant les fichiers nécessaires à l'installation d'une application. Si Windows vous affiche un des messages suivants, il peut être possible d'y remédier en lisant la suite de cet article : Erreur 1311. Fichier...
[Debian] Liste des paquetages (packages) installés VoirIl est possible de lister l'ensemble des paquetages installés grâce à la commande : dpkg --get-selections Grâce à cet outil il est ainsi possible d'exporter la liste des paquetages installés de la manière suivante : dpkg --get-selections >...

1

hamed01, le 26 mar 2009 à 19:44:48

Remplace les case '1' par des case 1.
de meme pour case '2' , tu remplace par case 2
ainsi de suite

Répondre à hamed01

2

Absot, le 26 mar 2009 à 19:58:35

Je l'ai fais et ça ne change rien... :/

Répondre à Absot

3

hamed01, le 26 mar 2009 à 20:18:09
  • +1

Ah je vois ....
ta variable choix est declarée dans le do { } while()
place la declaration en dessus, comme suit

------------------------------------------------------------­------------------------------
import java.util.Scanner;


public class sdz1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner lire = new Scanner (System.in);
int choix;
do{
double premier;
double second;
double res;
System.out.println("Saisissez un premier nombre");
premier = lire.nextDouble();
System.out.println("Saisissez un deuxieme nombre");
second = lire.nextDouble();
System.out.print("1 pour ajouter /n" +
"2 pour soustraire /n" +
"3 pour multiplier /n" +
"4 pour diviser /n" +
"5 pour quitter");

choix = lire.nextInt();
switch (choix){

case 1:
res = (premier+second);
System.out.println("Le resultat est " + res);
break;

case 2:
res = (premier-second);
System.out.println("Le resultat est " + res);
break;

case 3:
res = (premier*second);
System.out.println("Le resultat est " + res);
break;

case 4:
res = (premier/second);
System.out.println("Le resultat est " + res);
break;

Default:
System.out.println("Erreur de programmation");
}
}
while ( (choix ==1) || (choix ==2) || (choix ==3) || (choix ==4) );
}
}

Répondre à hamed01

4

hamed01, le 26 mar 2009 à 20:27:30

Et c'est pas Default mais default

fais tres attention, le java tient compte de la casse

Répondre à hamed01

5

Absot, le 26 mar 2009 à 20:30:29

J'ai déclaré ma variable au dessus et ça fonctionne.. merci

Pourquoi c'est ça qui faisait buguer?

Répondre à Absot

6

hamed01, le 26 mar 2009 à 20:37:26

Oui, effet, la variable est declaré dans la boucle do { } while() donc elle n'est visible que la bas.
Or tu l'utilise en dehors de cet bloc c'est a dire dans le while.
D'ou l'erreur.

Répondre à hamed01

7

 Absot, le 26 mar 2009 à 20:41:03

La prochaine fois, j'essaierais de me souvenir de ça.. ^^

Je mets mon topic en résolu et je quote la meilleure réponse :)

Répondre à Absot
Collection CommentÇaMarche.net