Binär programmieren C#?
Console.Write("Geben Sie eine Binärzahl ein: ");
string binär = Console.ReadLine();
for(int i = binär.Length - 1; i >=0; i--)
{
while (binär[i] != 1 || binär[i] != 0 )
{
Console.WriteLine("Ungültige Binärzahl!");
Console.Write("Geben Sie eine Binärzahl ein: ");
binär = Console.ReadLine();
}
Hi Leute!
Wo ist mein Fehler hier ich muss die Binär als string einlesen und danach feststellen ob es ein gültige Binär ist oder nicht .Also wenn kein 0 oder 1 eingeben sind soll ein Fehler Meldung kommen aber bei mir wenn ich auch 0 oder 1 eingeben kommt trotzdem ein Ungültige Binärzahl! 👇👇👇
4 Antworten
string binär = "";
bool incorrectInput = false;
while (!incorrectInput)
{
Console.Write("Geben Sie eine Binärzahl ein: ");
binär = Console.ReadLine();
incorrectInput = true;
for (int i = binär.Length - 1; i >= 0; i--)
{
if (binär[i] != '0' && binär[i] != '1')
{
Console.WriteLine(binär + "ist keine gültige Binärzahl!");
incorrectInput = false;
break;
}
}
}
Console.WriteLine(binär +" ist eine gültige Binärzahl!");
Console.ReadLine();
Du musst die 1 und 0 in der If-Abfrage in Anführungszeichen setzten. Sonst wird davon ausgegangen, dass es sich um Zahlen handelt (Vermutlich Integer) und eine Zahl ist immer ungleich einem String.
Edit: Ich meine natürlich die While-Schleife. (Du solltest aber darauf auf jeden Fall eine If-Abfrage machen)
Damit das funktioniert müsstest du
while (binär[i] != 1 || binär[i] != 0)
in
while (binär[i] != 49 || binär[i] != 48)
bzw.
while (binär[i] != '1' || binär[i] != '0')
ändern.
Ach du meine Fresse, das seh ich ja jetzt erst:
Mach aus dem || ein && und ersetze while durch if.
Wobei... Der Code ist dermaßen wartungsbedürftig, da wäre es weniger Aufwand, das ganze von 0 an neu zu schreiben.
Deinen restlichen Code kommentiere ich mal nicht.
while (binär[i] != 1 || binär[i] != 0
Was sagt denn die Bedingung im Schleifenkopf?
Du hast hier ein oder, ganz primitiv gesagt, sche.
Du brauchst hier ein und. Wenn eine Zahl nicht gleich 1 und nicht gleich 0 ist, DANN ist es ungültig.
Die 1 und 0 muss in Anführungszeichen auch noch. Da du dann einen char kriegst...