C#, prüfen ob die Zahl gerade oder ungerade ist?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
if(Zahl % 2 == 0){
//gerade
}
else{
//ungerade
}

Ein- und Ausgabe bekommst du ja sicher noch selbst hin 😄

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Informatik-Studium

lalelu812 
Fragesteller
 26.02.2021, 08:32

Ist also doch so simpel, danke dir! 🙌

0

Moin,

am besten nur eine Lösung verwenden, sobald du es selbst verstanden hast. Hier wäre ein möglicher Vorschlag:

while (true)
            {
                try
                {
                    Console.WriteLine("Bitte ganzzahlige Zahl eingeben.");
                    double d = Convert.ToDouble(Console.ReadLine());
                    if (d % 1 == 0)
                    {
                        if (d % 2 != 0)
                        {
                            Console.WriteLine("Die Zahl ist ungerade!");
                        }
                        else
                        {
                            Console.WriteLine("Die Zahl ist gerade!");
                        }
                    }
                }
                catch
                {
                }
            }

d % 1 ergibt immer 0, wenn es keine Gleitkommazahl ist.

Bitte beachten, dass der Nutzer im deutschen Raum trotzdem "2,3" als Wert angeben muss und nicht "2.3".

Alternativ kannst du auch einen Integer einlesen und mit Try und Catch abbrechen. Ist allerdings wegen Exceptions nicht sonderlich sauber.

LG

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

Die wohl einfachst Methode ist Modulo 2 zu rechnen. Also

if (Eingabe % 2 == 0)
{ #Die Zahl ist gerade
}
else
{ #Die Zahl ist ungerade
}
Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren

Also zunächst gibt es verschiedene Datentypen die diesen Zweck erfüllen nur Ganzzahlen aufzunehmen:

https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/builtin-types/integral-numeric-types

Dann benötigst du noch den Modulo operator (Restzahl)

https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/operators/arithmetic-operators

Wenn nun eine Zahl durch 2 geteilt wird und keinen Rest hat, dann ist sie logischer weise gerade ....

Woher ich das weiß:Berufserfahrung – Senior-Softwaredeveloper mit 20 Jahren Berufserfahrung.

Verwende die Modulo Funktion.

Das berechnet den Rest einer Division z.B. Zahl mod 2 = 0 oder nicht 0.

Woher ich das weiß:eigene Erfahrung