2016-10-11 6 views
0

Ich bitte Benutzer, ein int für ihr Alter einzugeben, aber das Programm stürzt ab, wenn sie eine Zeichenfolge eingeben (offensichtlich).C# stop Benutzer Eingabe eines Zeichens/String anstelle von Integer

Wie würde ich gehen, ihnen zu erlauben, ein Zeichen/eine Zeichenkette aber das Programm einzugeben, um eine lustige Mitteilung anzuzeigen und dann zu beenden ?.

Das ist, was ich bisher bekommen haben:

 Console.WriteLine("Please can you enter your age"); 
     int userage = Convert.ToInt32(Console.ReadLine()); 
     if (userage < 16) 
     { 

      var underage = new underage(); 
      underage.text(); 
     } 
     else if (userage>122) 
     { 
      Console.WriteLine("No one has ever reached this age and so you can't possibly be this old"); 
      Console.WriteLine("Please enter a different age next time!"); 
      Console.WriteLine("Unless you really are this old, in which case don't work!!"); 
      Console.WriteLine("Press any key to exit the program.\n"); 
      Environment.Exit(0); 
     } 
     else if(userage<122) 
     { 
      Console.WriteLine("Ah brilliant, you are old enough to use our services\n"); 
      Console.WriteLine("We shall continue as first planned\n"); 
     } 
     else 
     { 

     } 
+3

Verwenden [ 'int.TryParse'] (https://msdn.microsoft.com/en-us /library/f02979c7(v=vs.110).aspx) –

+0

Wo in diesem Code würde ich int.TryParse hinzufügen? –

+0

Am Anfang, nachdem Sie die Benutzereingabe gelesen haben. Speichern Sie die 'Console.ReadLine' in einer String-Variablen und verwenden Sie diese als Argument für' int.TryParse'. 'Int.TryParse' gibt ein' bool' zurück. Wenn es wahr ist, hat die int-Variable den gültigen Wert, wenn sie falsch ist, wissen Sie, dass die Benutzereingabe keine gültige Ganzzahl war. –

Antwort

1

Versuch:

  Console.WriteLine("Please can you enter your age"); 
      int userage; 
      if (int.TryParse(Console.ReadLine(), out userage)) 
      { 
       //your if block 
      } 
      else 
      { 
       Console.WriteLine("Your input is funny and I am a funny message\n"); 
       Environment.Exit(0); 
      } 
Verwandte Themen