C#, prüfen ob die Zahl gerade oder ungerade ist?
Hallo, wir sollen in C# ein Consolenprogramm schreiben, welches die Eingabe einer Ganzzahl fordert. Wenn die Ganzzahl eingegeben wurde, soll das Programm prüfen, ob die Zahl gerade oder ungerade ist. Ist sie gerade Ausgabe = gerade Zahl, ist sie es nicht Ausgabe = ungerade Zahl. Hat hier jemand eine Lösung?
5 Antworten
if(Zahl % 2 == 0){
//gerade
}
else{
//ungerade
}
Ein- und Ausgabe bekommst du ja sicher noch selbst hin 😄
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
Die wohl einfachst Methode ist Modulo 2 zu rechnen. Also
if (Eingabe % 2 == 0)
{ #Die Zahl ist gerade
}
else
{ #Die Zahl ist ungerade
}
Also zunächst gibt es verschiedene Datentypen die diesen Zweck erfüllen nur Ganzzahlen aufzunehmen:
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 ....
Verwende die Modulo Funktion.
Das berechnet den Rest einer Division z.B. Zahl mod 2 = 0 oder nicht 0.