Får inte till Do While loopen
Hej!
Uppgiften säger:
Denna uppgift går ut på att skapa en kod utifrån ett aktivitetsdiagram.
Utifrån det färdiga programmet ska ni besvara:
Hur mycket i pension får personen om han eller hon skriver in åldern 58?
(allså är tanken att man ska be personen mata in sin ålder och beräkna pensionen vid 58 års åldern. Startpengen är angiven till 15000 och det ska ökas med 500 eller 1000 beroende vart i loopen man är. )
Dom har angivit att do, if, else och while ska användas i uppgiften.
Jag får felsvar på min kod och kan inte lista ut var jag falerar :(
Min kod:
using System;
namespace Aktivitetsdiagram
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Enter age: "); //be användaren mata in sin ålder
do
{
int money=15000; // pengar
int age; //användarens inmatning av ålder
age++; //ökar ålder med 1 för varje varv som körs
if (money>20000 || age<60) //om pensionen är större än 20000 och ålder under 60 år
{
Console.WriteLine("You are saving a little");
money = money + 500; //lägg på 500 på pengar
}
else
{
Console.WriteLine("You are saving a lot"); // om inte if stämmer
money = money +1000; //lägg på 1000 på pengar
}
while(money<20000 && age<65) //kör loppen så länge pengar är under 20000 och åldern är under 65
{
Console.WriteLine("You are retired by the age of" + age);
Console.WriteLine("You have saved " + money + "dollar.");
}
Console.ReadKey();
}
} } }
när man kollar lite snabbt, vad tror du "age" har för ursprungsvärde?
räkna ut en formel för att beräkna pensionen, oftast finns det en enklare lösning
Ja, har haft med två rader som skulle ändra string till int, men tog bort det då det gav ännu fler felsvar.
Nu testade jag att skriva så här och kan ändå inte köra koden :(
do
{
int money=15000; // pengar
string age = Console.Readline(); //användarens inmatning av ålder
int age1 = int.Parse(age);
age++; //ökar ålder med 1 för varje varv som körs
du får flytta inmatningen av age till utanför loopen.
Yes, fick till det till slut. Efter lite omöblering så insåg jag att det hamnat fel.
Tack för att du tog dig tid att kolla & svara :)
Bra, men för framtiden bryt upp din uppgift i olika funktioner så blir det lättare att överblicka t.ex.
public static int GetAge()
{
System.Console.Write("Ange ålder:");
string s = Console.ReadLine();
Int32.TryParse(s, out var age);
return age;
}
Sen ropar du dem från Main, annars blir Main så klottrig