Permalänk
Skrivet av perost:

C# tillåter inte att man använder variabler innan man givit dem ett värde. Om du tar bort while-loopen så har du lite förenklat detta:

int cel; do { try { fahr = int.Parse(Console.ReadLine()); } catch (Exception e) { Console.WriteLine(e.Message); continue; } cel = Fahrtocel(fahr); ... } while (cel <= 73 || cel >= 77);

Om användaren matar in ett felaktigt värde så körs catch-satsen och continue; används för att hoppa över resten av loopen. Så långt allt rätt.

Men när du använder continue så kommer fortfarande while-villkoret att utvärderas för att kolla om loopen ska fortsätta med nästa iteration eller inte. Och eftersom även tilldelningen till cel hoppades över med continue så får du då fel eftersom cel används i while-villkoret utan att ha något värde.

Den enklaste lösningen är att helt enkelt se till att cel alltid har ett värde genom att ge den ett värde redan när den deklareras, t.ex. int cel = 0;.

Tack så jättemycket! Nu fick jag ihop det!