Probleme c++
Résolu
jeansaisrien
-
jeansaisrien -
jeansaisrien -
Bonjour,
je suis en train d'apprendre le c++ et je ne comprend pas pourquoi ceci ne fonctionne pas :
#include <iostream>
using namespace std;
int main()
{
int age = 21;
if(age >= 18)
{
bool majeur = true;
}
else
{
bool majeur = false;
}
if(majeur)
{
cout<<"Vous etes majeur";
}
else
{
cout<<"sale jeune";
}
return 0;
}
j'ai une erreur comme quoi majeur n'existe pas donc il ne prend pas en compte sa création dans les conditions si quelqu'un pouvait m'expliquer pourquoi ce serait sympa.
merci d'avance
je suis en train d'apprendre le c++ et je ne comprend pas pourquoi ceci ne fonctionne pas :
#include <iostream>
using namespace std;
int main()
{
int age = 21;
if(age >= 18)
{
bool majeur = true;
}
else
{
bool majeur = false;
}
if(majeur)
{
cout<<"Vous etes majeur";
}
else
{
cout<<"sale jeune";
}
return 0;
}
j'ai une erreur comme quoi majeur n'existe pas donc il ne prend pas en compte sa création dans les conditions si quelqu'un pouvait m'expliquer pourquoi ce serait sympa.
merci d'avance
4 réponses
-
sale jeune
Evite de mettre une telle phrase dans un forum.
if(majeur)
Oui effectivement, dans cette instruction 'majeur' n'existe pas. Où est la déclaration de 'majeur' ?
Oh, bien sûr, je t'entends fulminer: "Mais avec 'bool majeur = ...' car il passe de toutes façons dans l'un ou l'autre"; c'est vrai mais cela ne résout pas le problème.
Alors où est le problème ?
Tout simplement parce qu'une déclaration de variable faite dans un bloc ne permet de voir cette variable que dans ce bloc; en conséquence, une fois sorti de ce bloc, la variable n'existe plus.
Bonne réflexion. -
désolé pour le sale jeune,
bon j'ai compris l'histoire du bloc mais j'ai essayé de créer la variable avant en me disant qu'il la changerai avec la condition, et pourtant non ! Pourquoi ? -
Oh si, ça doit marcher.
int main() { bool majeur; int age = 21; if (age >= 18) majeur = true; else majeur = false; if (majeur) cout << "Vous êtes majeur"; else cout << "Vous êtes jeune"; return 0; }Bonne continuation. -
effectivement,
mon erreur était que j'attribuai à majeur une "valeur", j'ai compris maintenant merci pour le temps que tu m'as consacré.