3 svar
2860 visningar
DragonPeachBlossom behöver inte mer hjälp
DragonPeachBlossom 11 – Fd. Medlem
Postad: 15 okt 2020 20:33 Redigerad: 15 okt 2020 20:37

Följa ett aktivitets diagram C#

Hej! Min uppgift är att jag ska skriva min kod enligt en aktivitets diagram. Detta är min kod men jag har ett problem. Tillexempel om jag väljer att jag är 20 år. Då printas texten ut många gånger. Vad är felet? Varför blir det så?

 

using System;

namespace Ett_aktivitetsdiagram
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello user, please enter age. We are going to calculate how much money you have saved and when you will retire");
            string age = Console.ReadLine();
            int money = 15000;
            int GiveStringValueToAnIntAge = Convert.ToInt32(age);
            
            do 
            { //
            
                if (money > 20000 || GiveStringValueToAnIntAge < 60)
                {
                    Console.WriteLine("You are saving to little money");
                    money = money + 500;
                    GiveStringValueToAnIntAge++;
                    
                }
                else 
                {
                    Console.WriteLine ("You are saving to much money");
                    money = money + 1000;
                    GiveStringValueToAnIntAge++;
                }
            
            } while (money < 20000 && GiveStringValueToAnIntAge < 65); //
            
            Console.WriteLine ("\nAge of retirement is" + "  " + GiveStringValueToAnIntAge); 
            Console.WriteLine ("\nThe money you have saved is" + " " + money);
            
            Console.ReadKey();
        
        }
    }
}
        

 

Tack i förhand för hjälpen! 

joculator 5289 – F.d. Moderator
Postad: 15 okt 2020 21:47

Du är inne i denna loopen tills du fått money >= 20000.
Du börjar med 15000 (hårdkodat) och lägger till 500 varje varv. 
Så .... 10 varv

      

        if (money > 20000 || GiveStringValueToAnIntAge < 60)
                {
                    Console.WriteLine("You are saving to little money");
                    money = money + 500;
                    GiveStringValueToAnIntAge++;
                    
                }
                else 
                {
                    Console.WriteLine ("You are saving to much money");
                    money = money + 1000;
                    GiveStringValueToAnIntAge++;
                }
            
            } while (money < 20000 && GiveStringValueToAnIntAge < 65); //

DragonPeachBlossom 11 – Fd. Medlem
Postad: 15 okt 2020 21:50 Redigerad: 15 okt 2020 21:51

Ok, som jag förstår menar du att svaret som printas ut ska skrivas ut 10 varv. Det är rätt?

DragonPeachBlossom 11 – Fd. Medlem
Postad: 15 okt 2020 22:09

Fattar nu. Första gången jag ser detta på kod så jag blev förvirrad. Tack för hjälpen. Då är det löst. 

Svara
Close