Nybörjarhjälp i programmering 1 C#
Hej alla,
Jag pluggar just nu programmering 1 på distans och p.g.a brist på tid och andra omständigheter så har jag inte kunnat lägga ner den tid jag vill/behöver på programmeringen, vilket är sorgligt, då jag tycker att det är kul och det är nått jag vill lära mig. Jag borde enligt uppgiften kunna detta jag kommer att fråga om, men jag får inte till det, vilket gör mig oerhört frustrerad.
Pseudokoden enligt uppdraget ser ut såhär:
Fastställ en optimal temperatur
Fastställ godkänd minimi temperatur genom att ta bort 2 från optimal temperatur
Fastställ godkänd maximi temperatur genom att lägga till 2 från optimal temperatur
Repetera så länge användaren inte skrivit in en godkänd temperatur
Mata in temperatur
Om inmatad temp är lägre än lägsta godkända temperatur skriv ut ”Du har ställt in för låg temperatur”
Om inmatad temp är högre än högsta godkända temperatur skriv ut ”Du har ställt in för hög temperatur”
Skriv ut ”Du har ställt in en korrekt temperatur”
Koden jag har skrivit är följande:
int x = 80;
int mini = x - 2;
int maxi = x + 2;
do
{
Console.WriteLine("Välkommen till bastun. Skriv in optimal temperatur: ");
x = int.Parse(Console.ReadLine());
if (x < mini)
{
Console.WriteLine("Du har ställt in för låg temperatur: ");
x = int.Parse(Console.ReadLine());
}
else if (x > maxi)
{
Console.WriteLine("Du har ställt in för hög temperatur: ");
x = int.Parse(Console.ReadLine());
}
} while (x >= mini && x <= maxi);
Console.WriteLine("Du har ställt in en korrekt temperatur");
Console.ReadKey();
Det som händer är att man ska skriva in en optimal temp, t.ex. 90. Då får jag meddelandet "Du har ställt in för hög temperatur: "
vilket är det jag vill. När jag sen skriver en annan temperatur så går den direkt till "Du har ställt in en korrekt temperatur", vilket jag inte vill att den ska göra. Jag vill ju att den ska börja om i loopen!
Kan någon vänlig själ förklara vad jag som nybörjare gör för fel? Hur löser jag mitt problem?