Probleme comparaison de 2 char

Résolu
Sleem_ Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

4 réponses

chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention   378
 
Salut,
tu peux essayer cela comme condition:
while (!((b=='o')|(b=='n')));
@+
0
jacinthe87 Messages postés 194 Date d'inscription   Statut Membre Dernière intervention   3
 
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');
} 
0
Sleem_ Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
merci ça marche bien.
mais pourquoi la 1ere syntaxe n'a pas marché?
0
chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention   378
 
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...
@+
0