Question pour une base

Résolu
sherokee43 Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   -  
sherokee43 Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   -
Bonjours, je suis en train d'apprendre seul la programmation et j'ai une petite question (pour une base vu que j'en suis encore au début)
j'apprends sur un bon site qui me demande de rajouter un choix de caractère et un message d'erreurs si les valeurs sont négatives (à ce programme)
#include <iostream>
using namespace std;

void dessineRectangle(int l, int h)
{
    for(int ligne(0); ligne < h; ligne++)
    {
        for(int colonne(0); colonne < l; colonne++)
        {
            cout << "*";
        }
        cout << endl;
    } 
}

int main()
{
    int largeur, hauteur;
    cout << "Largeur du rectangle : ";
    cin >> largeur;
    cout << "Hauteur du rectangle : ";
    cin >> hauteur;
    
    dessineRectangle(largeur, hauteur);
    return 0;
}


après mes ajouts, cela donne ça.

#include <iostream>
using namespace std;

void dessineRectangle(int l, int h, char choix)
{
    for(int ligne(0); ligne < h; ligne++)
    {
        for(int colonne(0); colonne < l; colonne++)
        {
            cout <<  choix;
        }
        cout << endl;
    }
}

int main()
{
    int largeur, hauteur;
    char choix;

    cout << "Largeur du rectangle : ";
    cin >> largeur;
    cout << "Hauteur du rectangle : ";
    cin >> hauteur;
    if (hauteur || largeur <0)
    {
        cout << "valeurs incorrectes";
        return 0;
    }
    cout << "caractere a utiliser : ";
    cin >> choix;

    dessineRectangle(largeur, hauteur, choix);
    return 0;
}


mais le programme ne m'affiche que valeurs incorrectes, peut importe lesquels je rentre (qu'elles soit supérieurs ou inférieurs à 0). Quelqu'un pourrait m'expliquer? (le choix de caractère marche bien)

1 réponse

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,
Le test
if (hauteur || largeur < 0)
correspond à "si au moins une des deux choses est vraie
hauteur
ou bien
largeur < 0
".
Que penses-tu de faire plutôt :
if ( hauteur <= 0  ||  largeur <= 0 ) 
0
sherokee43 Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   3
 
ah d'accords, j'avais mal compris l'utilisation du || . Merci beaucoup de ton aide.
0