From a582867a74bafe40b9b855de5436101d35f82765 Mon Sep 17 00:00:00 2001 From: Alex Thomassen Date: Thu, 3 Jan 2019 13:58:21 +0100 Subject: [PATCH] Legg til eksempel med do/while --- SammenligneTallMellomToAndreTall.sln | 2 +- SjekkEtTall/Program.cs | 40 +++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/SammenligneTallMellomToAndreTall.sln b/SammenligneTallMellomToAndreTall.sln index 127d004..02260e3 100644 --- a/SammenligneTallMellomToAndreTall.sln +++ b/SammenligneTallMellomToAndreTall.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28307.136 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SjekkEtTall", "SjekkEtTall\SjekkEtTall.csproj", "{842A8BA8-9903-44A2-8BF3-A76486804E0B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SammenligneTallMellomToAndreTall", "SjekkEtTall\SammenligneTallMellomToAndreTall.csproj", "{842A8BA8-9903-44A2-8BF3-A76486804E0B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/SjekkEtTall/Program.cs b/SjekkEtTall/Program.cs index f8b59f5..82016fb 100644 --- a/SjekkEtTall/Program.cs +++ b/SjekkEtTall/Program.cs @@ -26,7 +26,7 @@ namespace SammenligneTallMellomToAndreTall * - Lavere enn 5 * - Høyere enn 54.99 * - * Om ett av disse tilfellene er riktig, starter den loopen (programmet) på nytt + * Om ett av disse tilfellene er "true", starter den loopen (programmet) på nytt * UTEN å gå videre i programmet. */ if (!validNumber || number < 5 || number > 54.99) @@ -43,8 +43,46 @@ namespace SammenligneTallMellomToAndreTall // Avslutter "while"-loopen // Kan alternativt bruke en do/while med et satt bool og endret dette. + // Har laget et enkelt eksempel et par linjer lenger ned. break; } + + // Samme eksempel med do/while + + // Sett en standard verdi slik at do/while starter og fortsetter som forventet. + bool ugyldigTall = true; + do + { + var input = Console.ReadLine(); + + // Prøver å konvertere input fra tekst til desimaltall + double number; + bool validNumber = double.TryParse(input, out number); + + /** + * Sjekker om input er en av følgende: + * - IKKE et gyldig desimaltall + * - Lavere enn 5 + * - Høyere enn 54.99 + * + * Om ett av disse tilfellene er "true", starter den loopen (programmet) på nytt + * UTEN å gå videre i programmet. + */ + if (!validNumber || number < 5 || number > 54.99) + { + Console.WriteLine($"Ugyldig nummer: {input} - Prøv igjen."); + + // Starter while-loopen på nytt. + continue; + } + + // Skriver ut "input"-tallet + Console.WriteLine($"Nummeret du skrev inn er: {number}"); + Console.ReadLine(); + + // Avslutter "do/while"-loopen + ugyldigTall = false; + } while (ugyldigTall); } } }