PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# - Schleife wertet Bolean nicht korrekt aus


ooAlbert
2008-01-08, 16:10:24
Hi,

vielleicht hab ich tomaten auf den augen aber mir will nicht klar werden warum die Schleife nur abbricht wenn ich Null eingebe und nicht wenn der dritte durchlauf benedet wurde.



int i = 0, wort_int = 1;
String wort;

while ( (i == 3) | (wort_int != 0))
{
try
{
Console.WriteLine("Wort");
wort = Console.ReadLine();
wort_int = Convert.ToInt32( wort );
}
catch (Exception )
{
wort_int = 1;
}
i++;
Console.WriteLine(i);
Console.WriteLine(wort_int);
}

Trap
2008-01-08, 16:15:29
Die Schleifenbedingung ist falsch.

Nach dem was du schreibst willst du (i<3 && wort_int==0)

Monger
2008-01-08, 16:55:02
Da fehlt ein kleines "not"! ;)

Die Schleife läuft, solange i NICHT gleich 3, oder word nicht gleich 0 ist. Die erste Negation fehlt schlicht.

#44
2008-01-08, 19:56:27
Die Schleifenbedingung ist falsch.

Nach dem was du schreibst willst du (i<3 && wort_int==0)

eher (i < 3 && wort_int != 0) ;)

Aus dem && sollte || werden wenn die Schleife bei Eingabe von 0 mehr als 3 mal laufen soll.