Permalänk
Medlem

nybörjar c# uppgift

Precis börjat med programmering, där en uppgift är att skriva av ett aktivitetsdiagram.

Där detta står från läraren.
(En kommentar: Programmet som skapas utifrån diagrammet är inte vidare logiskt. Man kan få rätt underliga svar beroende på ålder. Fundera inte över hur rimligt programmet är i sig, utan uppgiften är en övning i att skriva kod efter ett diagram.)

Så skrev en kod från den bilden, som jag tyvärr inte kan bifoga. koden ser ut så här: Mitt problem är att Loopen avbryts när den når 20000, men jag vill att den ska nå både 20000 kr och 65 i ålder, jag vet att den är kladdig koden, men egentligen är jag mest intresserad varför den går ur loopen när jag använder mig av &&.

Console.WriteLine(" Ange Ålder : "); string age = Console.ReadLine(); int age1 = Convert.ToInt32(age), pengar = 15000; do { if (pengar > 20000 || age1 < 60) { Console.WriteLine(" Du sparar för lite "); pengar = pengar + 500; age1++; } else { Console.WriteLine(" Du sparar mycket "); pengar = pengar + 1000; age1++; } } while (pengar < 20000 && age1 < 65); { Console.WriteLine("du är pensioner " + age1); Console.WriteLine(" och du har sparat : " + pengar); } Console.ReadKey();

Permalänk
Medlem

Den går ur loopen för att du sagt åt loopen att sluta när du når 20000 pengar eller när ålder når 65.

Båda statements måste vara True för att loopen ska fortsätta. När pengar går över 20000 så blir det statementet false och därav stannar loopen!

Vad du vill göra är alltså att ändra så att loopen fortsätter om pengar är under 20000 ELLER ålder är under 65.

Permalänk
99:e percentilen

Använd [code] när du klistrar in kod på forumet, så blir det mycket enklare att läsa den och därmed att hjälpa till. Exempel:

[code]
Console.WriteLine("Hello, World!");
[/code]

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

@Forsgren: Idag är du en hjälte! Det fick det att fungera. Tack!

Permalänk
Medlem

@lallas91: Börja lära dig att använda en debugger tidigt, på så vis kan du stega igenom och se exakt var logiken är fel någonstans!

Permalänk

Försök att använda en for loop eller en rekursiv funktion istället. Blir oftast mycket snyggare än while.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av alvarlagerlof:

Försök att använda en for loop eller en rekursiv funktion istället. Blir oftast mycket snyggare än while.

Skickades från m.sweclockers.com

Intressant att rekommendera en nybörjare att göra en rekursiv funktion.

Permalänk
Skrivet av m1ken:

Intressant att rekommendera en nybörjare att göra en rekursiv funktion.

Så fort han fattar det kommer ju koden att bli snyggare. Så krångligt är det ju inte. Det finns redan en ganska kompelx logik med if-satserna.