Mon "While" fausse le résultat de mon calcul [Résolu]

Signaler
Messages postés
20
Date d'inscription
mercredi 14 novembre 2012
Statut
Membre
Dernière intervention
10 janvier 2021
-
Messages postés
20
Date d'inscription
mercredi 14 novembre 2012
Statut
Membre
Dernière intervention
10 janvier 2021
-
Bonjour! Je suis nouveau dans C++, j'essaie de faire une calculatrice, mais le résultat est faussé quand j'utilise une boucle "While" pour vérifier si l'utilisateur saisit le bon opérateur. Aidez-moi, s'il vous plait!

#include <iostream>

using namespace std;

int main()
{
    double x, y;
    double total = 0;
    char op;
    cout<<"Enter your first number: ";
    cin>>x;
    cout<<"Enter your second number: ";
    cin>>y;
    cout<<"Enter an operator: ";
    cin>>op;
    
    switch(op){
        
        case '+':
            total = x+y;
            break;
            
        case '-':
            total = x-y;
            break;
            
        case '*':
            total = x*y;
            break;
    }
    
    while((op != '+') || (op != '-') || (op != '*')){
        cout<<"Bad operator. Enter en operator: "<<endl;
        cin>>choix;
    }
    
    cout<<"Total:"<<total<<endl;
    return 0;
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

Messages postés
13823
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 janvier 2021
776
bonjour, je suggère, dans le message en ligne 33, d'afficher également l'opérateur.
J'ai corrigé l'erreur. Il fallait mettre "&&" à la place des "| |" puis placer la boucle "While" avant le switch. J'avais fait une erreur aussi à la ligne 33 comme quelqu'un l'a mentionné; j'avais changé le nom des variables et j'avais oublié de la corriger à la ligne 33. Merci beaucoup les gars.
Messages postés
20
Date d'inscription
mercredi 14 novembre 2012
Statut
Membre
Dernière intervention
10 janvier 2021

Merci à tous pour vos réponses.