Permalänk
Medlem

Uppgift Flödesschema C#

Hej här är en nybörjare som håller på med en uppgift i programmering 1 på distans där vi just nu fått i uppgift att följa till punkt och pricka ett specifikt flödesschema och skapa ett program utifrån det. Jag vill så gärna förstå hur man gör och skäms för att behöva fråga men nu sitter jag alltså rejält fast då jag fastnar i en evighetsloop när jag ex skriver åldern 55. Har fått en övergripande förklaring på att jag måste förändra värdet på variabeln money & age i varje varv av loopen. Och det är alltså där jag inte längre förstår hur jag skall göra, därav som jag nu vänder mig hit i förhoppning att kanske någon med en annan typ av pedagogik kanske ser vad det är jag gjort som inte funkar och kan ge mig en mer fördjupad förklaring kring hur jag kan göra.
Stort tack på förhand! Här under ser ni alltså min gamla mycket enkla kod som jag försöker få ordning på utifrån schemat;

class Program
{

public static void Main(string[] args)
{

Console.Write(" Enter age ");
string str = Console.ReadLine();
int age = Convert.ToInt32(str);
int money = 15000;

do
{
if (money > 20000 || age < 60)
{
Console.WriteLine(" You are saving little " + ((60 - age) * 500 + 15000 )) ;
}

else
{
Console.WriteLine(" You are saving a lot " + ((age - 60) * 1000 + 15000 )) ;
}

}
while (money < 20000 && age < 65);
Console.WriteLine(" You are retired by the age of age " + " You are saved money dollars " );

Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}

P.S Notera att jag är nybörjare och gör mitt absolut bästa för att lära mig

Permalänk
Medlem

Du loopar tills money < 20000 och age < 65, men ändrar aldrig värdet på varken money eller age inne i loopen. Så programmet kommer loopa för evigt inget förändras inne i loopen.

Ps. Använd gärna code-taggar när du postar kod så blir den lättare att läsa. T.ex.:
[code]
Kod här
[/code]

Permalänk
Medlem

Som tillägg till ovanstående inlägg så måste du som sagt ändra värdet på money och/eller age. Vad är tanken med while-loopen? Ska man fråga efter en ny ålder efter att man skrivit ut hur mycket man sparar och sedan skriva ut på nytt hur mycket man sparar med den nya åldern?

Vilket som, för att ge dig något mer konkret att gå på så kan ett liknande exempel på hur man ändrar värdet på en variabel se ut såhär:

int counter = 1; do { Console.WriteLine(counter); counter = counter + 1; } while (counter <= 5); Console.WriteLine("While loop done");

Som då ökar (ändrar) variabeln counter med 1 för varje iteration av loopen. Ändringen skulle även kunna skrivas mer kompakt med antingen counter += 1 eller bara counter++.
Resultatet blir att det skrivs ut;

1 2 3 4 5 While loop done

Permalänk
Medlem

@perost: Ja men precis så långt vart jag med förstod bara inte hur jag skulle lösa det.
Tack för svar! Ska använda

nästa gång

Permalänk
Medlem

@noyce: Så bra förklaring precis det jag behövde! Tack SNÄLLA! Som svar på din fråga om jag tolkat uppgiften korrekt används while-loopen för att få fram flera olika utskrifter där den sista utskriften ska vara "You are retired.." och det är då man ser slutresultatet. Alltså vid vilken ålder man går i pension och hur mycket pengar man får.