Variable cannot be resolved [Résolu/Fermé]

Signaler
Messages postés
778
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
4 septembre 2020
-
Messages postés
1
Date d'inscription
lundi 26 décembre 2011
Statut
Membre
Dernière intervention
26 décembre 2011
-
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?
A voir également:

8 réponses

Messages postés
207
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
22 juillet 2011
23
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) );
}
}
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
207
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
22 juillet 2011
23
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.
Messages postés
207
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
22 juillet 2011
23
remplace les case '1' par des case 1.
de meme pour case '2' , tu remplace par case 2
ainsi de suite
Messages postés
778
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
4 septembre 2020
42
Je l'ai fais et ça ne change rien... :/
Messages postés
207
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
22 juillet 2011
23
et c'est pas Default mais default

fais tres attention, le java tient compte de la casse
Messages postés
778
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
4 septembre 2020
42
J'ai déclaré ma variable au dessus et ça fonctionne.. merci

Pourquoi c'est ça qui faisait buguer?
Messages postés
778
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
4 septembre 2020
42
La prochaine fois, j'essaierais de me souvenir de ça.. ^^

Je mets mon topic en résolu et je quote la meilleure réponse :)
Messages postés
1
Date d'inscription
lundi 26 décembre 2011
Statut
Membre
Dernière intervention
26 décembre 2011

bsr,s.v.p jé même problème mé il n'est pas résolu :( ,mon programme affiche cet erreur :Exception in thread "main" java.lang.Error: Unresolved compilation problem:
op cannot be resolved to a variable
et voila mon code
s.v.p aidez moi et merci d'avance

import java.util.Scanner;
import java.io.*;

public class calculette {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

int a, b;
do
{
//Menu
System.out.println(); System.out.println();
System.out.println(" Menu Principal");
System.out.println("+: Addition");
System.out.println("-: Soustraction");
System.out.println("*: Multiplication");
System.out.println("/: Division");
System.out.println("%: reste de la division");
System.out.println("$: Fin du programme");


//traitement de choix

char op;
System.out.println(" Votre choix SVP");
String ch=s.next();
op=ch.charAt(0);
switch(op)
{
case'+':System.out.println("val de a:");a=s.nextInt();
System.out.println("val de b:");b=s.nextInt();
System.out.println(a+"+"+b+"="+(a+b));
break;
case'-':System.out.println("val de a:");a=s.nextInt();
System.out.println("val de b:");b=s.nextInt();
System.out.println(a+"-"+b+"="+(a-b));
break;
case'*':System.out.println("val de a:");a=s.nextInt();
System.out.println("val de b:");b=s.nextInt();
System.out.println(a+"*"+b+"="+(a*b));
break;
case'/':System.out.println("val de a:");a=s.nextInt();
System.out.println("val de b:");b=s.nextInt();
if(b!=0)
System.out.println(a+"/"+b+"="+(a/b));
else System.out.println("Err: Division par 0 impossible!!!");

break;
case'%':System.out.println("val de a:");a=s.nextInt();
System.out.println("val de b:");b=s.nextInt();
if(b!=0)
System.out.println(a+"%"+b+"="+(a%b));
else
System.out.println("Err: Division par 0 impossible!!!");

break;
case'$':System.out.println("Au revoir");
break;
default:System.out.println("ERR: opérateur invalide");

}
}while(op!='$');


}

}