Soucis de condition c++

Fermé
Oblox - Modifié par KX le 21/11/2014 à 19:08
 Obli - 21 nov. 2014 à 19:22
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 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
21 nov. 2014 à 19:20
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
Merci pour ta réponse KX :).
0