Soucis de condition c++

Oblox -  
 Obli -
Bonjour,

J'ai un petit soucis avec un bête petit programmes en C++, je n'arrive pas à comprendre ma condition du while, je voudrais que le programmes s'arrêtes si il rencontre 2 valeur égal à zéro.
Voici mon code:

#include <iostream>

using namespace std;

int main()
{
    int a (5), b(5);
    while (a!=0 && b!=0) {
        cout<< "Valeur pour A et B" << endl;
        cin >> a >> b;
        cout << endl << a << " "<< b << endl;

    }
    cout << "programme terminer "  << a << " " << b;
}

Je ne comprends pas pourquoi mettre un or, comme je lis ma condition while dans mon code je lui demande de boucler tant que A est différends de zéro et que B est différends que zéro.
Suis-je dans l'erreur ?
Merci par avance pour vos réponse.

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

C'est un simple problème de logique booléenne.

"je lui demande de boucler tant que A est différends de zéro et que B est différends que zéro."
En réalité ce que tu veux c'est boucler tant que A est différent de 0, OU que B est différent de zéro.

Boucler si a!=0 ET b!=0, cela revient à ne pas boucler si a==0 OU b==0.
Or toi tu veux ne pas boucler si a==0 ET b==0, tu veux donc boucler si a!=0 OU b!=0
0
Obli
 
Merci pour ta réponse KX :).
0