Created
October 7, 2016 09:32
-
-
Save s0ren/a6dbaba8ffff43c1dc865279bd0248c6 to your computer and use it in GitHub Desktop.
Indlæs tal fra Console.ReadLine(). TryParse med det hele
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace GamleOle | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
Console.Write("Indtast din alder: "); | |
//double alder = Convert.ToDouble(Console.ReadLine()); | |
double alder; | |
while (!Double.TryParse(Console.ReadLine(), out alder)) | |
{ | |
Console.WriteLine("Du har tastet noget der ikke er tal. Indtast din alder, igen: "); | |
} | |
Console.WriteLine("Alder: " + alder); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Overfør tal fra brugerens indtastning uden problemer,
også hvis brugeren taster forkert.
Jeg bruger
TryParse()
som er en metode der findes på alle tal typerneInt16
/Int32
/Int64
ogFloat
,Double
ofDecimal
.TryParse
er lidt special fordi den ikke returnerer det tal man for ud af at konvertere teksten til tal. Der hvor vi skal have tallet til at "lande" skal angives som nr. 2 parameter, med nøgleordetout
foran. Se linie 10. Første parameter er den tekst der skal konverteres til tal.Uden om kaldet til TryParse, har jeg sat et
while
-loop fordi jeg gerne vil blive ved med at bede brugeren om at taste rigtigt, ind til vi får er brugbart tal. TryParse returnerer nemligtrue
ellerfalse
, alt efter om konverteringen lykkes eller ikke gør. Jeg vil gerne fortsættewhile
-loop'et indtil det er i orden, derfor vender jeg TryParse's retur-værdi med udråbstegnet (!
). Altså: så længe der IKKE bliver tastet et gyldigt tal, bliv ved med at skrive "prøv igen", og indlæs og test igen om det er gyldigt.