Probleme mit bool...

flashbrain

Mitglied
Irgendwie hab ich hier ne endlosschleife produziert und ich versteh nicht wieso...
hab ich vielleicht was grundsätzliches nicht verstanden beim Arbeiten mit bool?!

#include <iostream>

using namespace std;

int main ()
{
int a = 0;
int addieren;
do
{
cout << a << endl;
a ++;
if (a > 10)
{
bool addieren = false;
}
else
{
addieren = true;
}
}
while(addieren); /*sobald a>als 10 wird müßte hier ja eigenltlich false stehen und
und hier dann die do while schleife abbrechen ?! */


cout << a;

int x;
cin >> x;

return 0;
}
 
moin


Du hast einmal eine "int addieren" und einmal eine "bool addieren" vielleicht beisst sich das. while nimmt sich da wohl die falsche Variable.


mfg
umbrasaxum
 
Also erstmal hast Du 2 Variablen mit dem Name 'addieren' angelegt. Das ist zwar grundsätzlich möglich, führt aber oft zu genau solchen Fehlern. Im ersten if-Zweig legst Du eine Variable 'bool addieren' an. Die wird jedes Mal neu angelegt, wenn dieser if-Zweig betreten wird und ist auch nur dort gültig. Im 2. if-Zweig weist Du der Variablen 'addieren' einen Wert zu. Hier wird die weiter oben deklarierte int-Variable angesprochen, da die bool-Variable hier nicht mehr existiert.
Nimm also das 'bool' aus dem ersten if-Zweig weg und ersetze damit das 'int' bei der oberen Deklaration von 'addieren'. Dann sollte es schon gehen.
 
Noch etwas: Genau für soetwas eignet sich die ungarische Notation. Wenn du einen bool Wert hast, setze einfach noch vor seinen Namen ein b, also bool bAddieren;. Bei einem int wert benutzt man ein i als vorsilbe. Dann kann dir so etwas (,dass 2 Variablen den gleichen Namen haben) nicht mehr so schnell passieren.
 
Zurück