Probleme comparaison de 2 char
Résolu
Sleem_
Messages postés
76
Statut
Membre
-
chuka Messages postés 980 Statut Membre -
chuka Messages postés 980 Statut Membre -
Bonjour,
j'ai écrit ce code:
import java.math.*;
public class Puissance{
public static void main(String[]args){
double x,n;
char b;
do{
System.out.println("Donnez X: ");
x=LectureClavier.lireEntier();
System.out.println("Donnez n: ");
n=LectureClavier.lireEntier();
System.out.println("X^n= "+Math.pow(x,n));
do{
System.out.println("Voulez vous rejouer?(o/n)");
b=LectureClavier.lireChar();
}
while ((b!='o')|| (b!='n'));
}
while(b=='o');
}
}
Lors de son exécution, il calcule la puissance, mais il ne traverse pas l'instruction "voulez vous rejouer(o/n)" quelques soient les caractères que j'entre. il me la répète.
Je pense que le problème est dans la: while ((b!='o')|| (b!='n'));
J'ai introduit cette condition pour tester ou bien le caractère o (oui) ou bien le caractère n (non).
merci de bien m'aider à rectifier ce problème.
Cordialement.
j'ai écrit ce code:
import java.math.*;
public class Puissance{
public static void main(String[]args){
double x,n;
char b;
do{
System.out.println("Donnez X: ");
x=LectureClavier.lireEntier();
System.out.println("Donnez n: ");
n=LectureClavier.lireEntier();
System.out.println("X^n= "+Math.pow(x,n));
do{
System.out.println("Voulez vous rejouer?(o/n)");
b=LectureClavier.lireChar();
}
while ((b!='o')|| (b!='n'));
}
while(b=='o');
}
}
Lors de son exécution, il calcule la puissance, mais il ne traverse pas l'instruction "voulez vous rejouer(o/n)" quelques soient les caractères que j'entre. il me la répète.
Je pense que le problème est dans la: while ((b!='o')|| (b!='n'));
J'ai introduit cette condition pour tester ou bien le caractère o (oui) ou bien le caractère n (non).
merci de bien m'aider à rectifier ce problème.
Cordialement.
Configuration: Windows XP Firefox 3.0.16
4 réponses
-
Salut,
tu peux essayer cela comme condition:
while (!((b=='o')|(b=='n')));
@+ -
Essai ce code:
public static void main(String[]args){ double x,n; char b='n'; do{ System.out.println("Donnez X: "); x=LectureClavier.lireEntier(); System.out.println("Donnez n: "); n=LectureClavier.lireEntier(); System.out.println("X^n= "+Math.pow(x,n)); System.out.println("Voulez vous rejouer?(o/n)"); b=LectureClavier.lireChar(); } while(b=='o'); } -
merci ça marche bien.
mais pourquoi la 1ere syntaxe n'a pas marché? -
Salut,
si tu tapes 'o', b='o'=>b!='o' est faux mais b!='n' est vrai donc le résultat vaut vrai....
et inversement si tu tapes 'n', b='n'=>b!='n' est faux mais b!='o' est vrai donc le résultat vaut vrai....
et si tu tapes autre chose:b!='n' est vrai et b!='o' est vrai...
@+