C# Frage stellen?

2 Antworten

Du initialisierst halt die variable schon mit dem Wert. Ich würde, wenn du es unbedingt so machen willst, es so machen, dass du den Wert 0 als Standard nimmst. 18 trifft zu und standardmäßig sollte es nicht zu treffen.

Bevor die If Abfrage kommt, kannst du das machen:

Console.Write("Wie alt sind die? ");
alter =  Convert.ToInt32(Console.ReadLine());

Conole Write schreibt in die Konsole ohne neue Zeile und Console Readline gibt den Wert der Eingabe zurück. Da es ein String ist, muss es in int konvertiert werden und als letztes noch die variable alter mit dem neuen Wert überschreiben

Von Experte Dultus, UserMod Light bestätigt

Mit Console.ReadLine() kannst du eine Zeile lesen, die der Benutzer eingibt. Da die Zeile für den Computer erstmal nur aus einer Zeichenkette (string) besteht, musst du sie in eine Zahl (int) umwandeln, damit du prüfen kannst, ob sie größer/kleiner als 18 ist.

static void Main()
{
    Console.WriteLine("Wie alt bist du?");
    int alter = Convert.ToInt32(Console.ReadLine());

    if (alter < 18)
    {
        Console.WriteLine("Das ist leider zu jung.");
    }
    else
    {
        Console.WriteLine("Ok, du bist alt genug.");
    }
}

Probleme bei der Sache: Wenn man keine Zahl eingibt, stürzt das Programm ab und man kann unsinnige Zahlen, wie z.B negative oder viel zu große Zahlen (z.B. mehrere 1000 Jahre) eingeben und das Programm schluckt es, ohne zu meckern.

Besser wäre es, wenn du nach dem Geburtsdatum fragst:

static void Main()
{
    Console.WriteLine("Bitte gib dein Geburtsdatum ein (TT.MM.JJJJ)");
    DateTime geburtsdatum = DateTime.Parse(Console.ReadLine());


    if (geburtsdatum.AddYears(18) >= DateTime.Today)
    {
        Console.WriteLine("Du bist leider zu jung.");
    }
    else
    {
        Console.WriteLine("Ok, du bist alt genug.");
    }
}

wunschname0302  05.10.2021, 11:47

In das zweite Beispiel hat sich ein Fehler eingeschlichen. :D

0
daCypher  05.10.2021, 12:08
@wunschname0302

Oh, stimmt. Wenn man genau seinen 18. Geburtstag feiert, ist man noch zu jung. Ist dann '>' anstatt '>='.

1