2022-04-09, 20:43
  #1
Medlem
Bonnatorps avatar
Har en uppgift med följande kod:

Kod:
using System;

namespace Fordon_Lastbil
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Fordon volvo = new Fordon(90, "grön");
            Lastbil scania = new Lastbil(400, "vit", 3000);
			Run();
        }
        static void Run()
        {
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Välkommen till fordonssimulatorn.");
				Console.WriteLine("Välj fordon:");
				Console.WriteLine("1 Volvo - bil");
				Console.WriteLine("2 Scania - lastbil");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
                    Run();
				}

				switch (temp)
				{
					case 1:

						Volvo();
						break;
					case 2:
						Scania();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
                        Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
        static void Volvo()
        {
			int horsepower=0;
			string color = "vit";
			Console.WriteLine("Hur många hästkrafter har bilen?");
			horsepower = int.Parse(Console.ReadLine());
			Console.WriteLine("Vilken färg är bilen?");
			color = Console.ReadLine();
			Fordon volvo = new Fordon(horsepower, color);
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Vad ska bilen göra?.");
				Console.WriteLine("Välj alternativ:");
				Console.WriteLine("1 Köra");
				Console.WriteLine("2 Tuta");
                Console.WriteLine("3 Huvudmeny");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Volvo();
				}

				switch (temp)
				{
					case 1:
                        Console.WriteLine("Den {0}a Volvon kör i {1} km/h", color, volvo.Calc_Topspeed(horsepower)); ;
						Console.ReadKey();
						break;
					case 2:
						volvo.Horn();
						Console.ReadKey();
						break;
					case 3:
						Run();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
        static void Scania()
        {
			int horsepower = 0;
			string color = "vit";
			int last = 0;
			Console.WriteLine("Hur många hästkrafter har fordonet?");
			horsepower = int.Parse(Console.ReadLine());
			Console.WriteLine("Vilken färg är fordonet?");
			color = Console.ReadLine();
			Console.WriteLine("Hur många kilo är lastat på fordonet?");
			last = int.Parse(Console.ReadLine());
			Lastbil scania = new Lastbil(horsepower, color, last);
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Vad ska lastbilen göra?.");
				Console.WriteLine("Välj alternativ:");
				Console.WriteLine("1 Köra");
				Console.WriteLine("2 Tuta");
				Console.WriteLine("3 Huvudmeny");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Scania();
				}

				switch (temp)
				{
					case 1:
						Console.WriteLine("Den {0}a Scanian kör i {1} km/h", color, scania.Calc_Topspeed(horsepower, last)); ;
						Console.ReadKey();
						break;
					case 2:
						scania.Horn();
						Console.ReadKey();
						break;
					case 3:
						Run();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
    }
    class Fordon
    {
        protected int horsepower;
        protected string color;

        public Fordon (int horsepower, string color)
        {
            this.horsepower = horsepower;
            this.color = color;
        }
        public virtual double Calc_Topspeed(int horsepower)
        {
            return horsepower * 1.5;
        }
        public void Horn()
        {
            Console.WriteLine("Du tutar.");
        }
    }
    class Lastbil : Fordon
    {
        private int last; //kilogram last
        public Lastbil(int horsepower, string color, int last) : base(horsepower, color)
        {
			this.last = last;
            this.horsepower = horsepower;
            this.color = color;
        }
        public override double Calc_Topspeed(horsepower, last)
        {
            return (horsepower * 1.5)/(last/7000);
        }
    }
}

Problemet är att functionen scania.Calc_Topspeed(horsepower, last) (halvnära slutet) inte vill köras, på grund av felmeddelandet på villkoren att "Cannot convert int to horsepower/last".

Och jag antog att det skulle gå plocka variablerna från metoden Scania() i klassen Run(), och använda som villkor i den metoden.
Men det verkar inte gå, fastän samma funktion går bra i metoden Volvo(), fast för klassen Fordon istället för den Lastbil : Fordon.

Några idéer?
Citera
2022-04-09, 20:54
  #2
Medlem
Citat:
Ursprungligen postat av Bonnatorp
Har en uppgift med följande kod:


Problemet är att functionen scania.Calc_Topspeed(horsepower, last) (halvnära slutet) inte vill köras, på grund av felmeddelandet på villkoren att "Cannot convert int to horsepower/last".

Och jag antog att det skulle gå plocka variablerna från metoden Scania() i klassen Run(), och använda som villkor i den metoden.
Men det verkar inte gå, fastän samma funktion går bra i metoden Volvo(), fast för klassen Fordon istället för den Lastbil : Fordon.

Några idéer?

Gör du någon uträkning som gör att du får ett decimaltal och försöker spara det i en int?
Citera
2022-04-09, 20:56
  #3
Medlem
Citat:
Ursprungligen postat av 1psykfall
Gör du någon uträkning som gör att du får ett decimaltal och försöker spara det i en int?

såg nu att det antaligen inte var felet.
Citera
2022-04-09, 20:59
  #4
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av 1psykfall
Gör du någon uträkning som gör att du får ett decimaltal och försöker spara det i en int?
Nej uträkningen av Calc_Topspeed är bara en kort return (horsepower * 1.5)/(last/7000);.
Returen är en double, men det antog jag inte skulle vara något problem eftersom en input i funktionen ska kunna vara en int ändå.

Jag upptäckte dock problemet nu, jag hade inte satt villkoren till int, respektive string (för hästkrafter respektive färg) i funktionen i sig.

Dock har jag ett nytt problem.
Funktionen körs helt oförklarligt inte. Programmet återgår till menyn trots att det till och med är satt en Console.ReadKey(); efter stycket där funktionen ska returnera en hastighet.

Både klassen Fordon och klassen Lastbil innehåller samma funktion, fast med olika innehåll (lastbilens metod innehåller variabeln last, så två villkor istället för ett), så jag antog att jag skulle använda override där, men det gick inte heller då jag då får ett felmeddelande på metodnamnet som säger "no suitable method found to override".
Beror det på att de har olika antal villkor och räknas som olika metoder?
__________________
Senast redigerad av Bonnatorp 2022-04-09 kl. 21:02.
Citera
2022-04-09, 21:03
  #5
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Bonnatorp
Nej uträkningen av Calc_Topspeed är bara en kort return (horsepower * 1.5)/(last/7000);.
Returen är en double, men det antog jag inte skulle vara något problem eftersom en input i funktionen ska kunna vara en int ändå.

Jag upptäckte dock problemet nu, jag hade inte satt villkoren till int, respektive string (för hästkrafter respektive färg) i funktionen i sig.

Dock har jag ett nytt problem.
Funktionen körs helt oförklarligt inte. Programmet återgår till menyn trots att det till och med är satt en Console.ReadKey(); efter stycket där funktionen ska returnera en hastighet.
Bra Bonnatorp, nu har du kommit så långt på din utvecklarresa att du får börja med debugging och börja göra breakpoints och köra koden rad för rad med olika watches för att se vad som händer. Ett nytt kapitel.
Citera
2022-04-09, 21:06
  #6
Medlem
Citat:
Ursprungligen postat av Bonnatorp
Nej uträkningen av Calc_Topspeed är bara en kort return (horsepower * 1.5)/(last/7000);.
Returen är en double, men det antog jag inte skulle vara något problem eftersom en input i funktionen ska kunna vara en int ändå.

Jag upptäckte dock problemet nu, jag hade inte satt villkoren till int, respektive string (för hästkrafter respektive färg) i funktionen i sig.

Dock har jag ett nytt problem.
Funktionen körs helt oförklarligt inte. Programmet återgår till menyn trots att det till och med är satt en Console.ReadKey(); efter stycket där funktionen ska returnera en hastighet.

Både klassen Fordon och klassen Lastbil innehåller samma funktion, fast med olika innehåll (lastbilens metod innehåller variabeln last, så två villkor istället för ett), så jag antog att jag skulle använda override där, men det gick inte heller då jag då får ett felmeddelande på metodnamnet som säger "no suitable method found to override".
Beror det på att de har olika antal villkor och räknas som olika metoder?

Kod:
class Lastbil : Fordon
    {
        private int last; //kilogram last
        public Lastbil(int horsepower, string color, int last) : base(horsepower, color)
        {
			this.last = last;
            this.horsepower = horsepower;
            this.color = color;
        }
        public override double Calc_Topspeed(horsepower, last)
        {
            return (horsepower * 1.5)/(last/7000);
        }
    }

Jag gissar att detta är typ c++ eller något liknande språk? Men det jag tänker här, behöver du inte referera this.horsepower till en instance variabel? Eller "får" du med dig den från "fordon"? Sorry, jag kanske förvirrar mer än att hjälpa just nu...
Citera
2022-04-09, 21:13
  #7
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Enterprise
Bra Bonnatorp, nu har du kommit så långt på din utvecklarresa att du får börja med debugging och börja göra breakpoints och köra koden rad för rad med olika watches för att se vad som händer. Ett nytt kapitel.
Ja min gode mentor visade mig det vara häromdagen.
Otroligt användbart (och rätt så grisigt att studieguiden inte tagit upp det), men lite slitsamt ibland.
Citat:
Ursprungligen postat av 1psykfall
Kod:
class Lastbil : Fordon
    {
        private int last; //kilogram last
        public Lastbil(int horsepower, string color, int last) : base(horsepower, color)
        {
			this.last = last;
            this.horsepower = horsepower;
            this.color = color;
        }
        public override double Calc_Topspeed(horsepower, last)
        {
            return (horsepower * 1.5)/(last/7000);
        }
    }

Jag gissar att detta är typ c++ eller något liknande språk? Men det jag tänker här, behöver du inte referera this.horsepower till en instance variabel? Eller "får" du med dig den från "fordon"? Sorry, jag kanske förvirrar mer än att hjälpa just nu...
Nej C#.

Ja den ärver från fordon.
Citera
2022-04-09, 21:41
  #8
Kod:
using System;

namespace Fordon_Lastbil
{
	internal class Program
	{
		static void Main(string[] args)
		{
			Fordon volvo = new Fordon(90, "grön");
			Lastbil scania = new Lastbil(400, "vit", 3000);
			Run();
		}
		static void Run()
		{
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Välkommen till fordonssimulatorn.");
				Console.WriteLine("Välj fordon:");
				Console.WriteLine("1 Volvo - bil");
				Console.WriteLine("2 Scania - lastbil");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Run();
				}

				switch (temp)
				{
					case 1:

						Volvo();
						break;
					case 2:
						Scania();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
		static void Volvo()
		{
			int horsepower = 0;
			string color = "vit";
			Console.WriteLine("Hur många hästkrafter har bilen?");
			horsepower = int.Parse(Console.ReadLine());
			Console.WriteLine("Vilken färg är bilen?");
			color = Console.ReadLine();
			Fordon volvo = new Fordon(horsepower, color);
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Vad ska bilen göra?.");
				Console.WriteLine("Välj alternativ:");
				Console.WriteLine("1 Köra");
				Console.WriteLine("2 Tuta");
				Console.WriteLine("3 Huvudmeny");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Volvo();
				}

				switch (temp)
				{
					case 1:
						Console.WriteLine("Den {0}a Volvon kör i {1} km/h", color, volvo.Calc_Topspeed(horsepower)); ;
						Console.ReadKey();
						break;
					case 2:
						volvo.Horn();
						Console.ReadKey();
						break;
					case 3:
						Run();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
		static void Scania()
		{
			int horsepower = 0;
			string color = "vit";
			int last = 0;
			Console.WriteLine("Hur många hästkrafter har fordonet?");
			horsepower = int.Parse(Console.ReadLine());
			Console.WriteLine("Vilken färg är fordonet?");
			color = Console.ReadLine();
			Console.WriteLine("Hur många kilo är lastat på fordonet?");
			last = int.Parse(Console.ReadLine());
			Lastbil scania = new Lastbil(horsepower, color, last);
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Vad ska lastbilen göra?.");
				Console.WriteLine("Välj alternativ:");
				Console.WriteLine("1 Köra");
				Console.WriteLine("2 Tuta");
				Console.WriteLine("3 Huvudmeny");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Scania();
				}

				switch (temp)
				{
					case 1:
						Console.WriteLine("Den {0}a Scanian kör i {1} km/h", color, scania.Calc_Topspeed(horsepower, last)); ;
						Console.ReadKey();
						break;
					case 2:
						scania.Horn();
						Console.ReadKey();
						break;
					case 3:
						Run();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
	}
	class Fordon
	{
		protected int horsepower;
		protected string color;

		public Fordon(int horsepower, string color)
		{
			this.horsepower = horsepower;
			this.color = color;
		}
		public virtual double Calc_Topspeed(int horsepower)
		{
			return horsepower * 1.5;
		}
		public void Horn()
		{
			Console.WriteLine("Du tutar.");
		}
	}
	class Lastbil : Fordon
	{
		private int last; //kilogram last
		public Lastbil(int horsepower, string color, int last) : base(horsepower, color)
		{
			this.last = last;
			this.horsepower = horsepower;
			this.color = color;
		}
		public double Calc_Topspeed(int horsepower, int last)
		{
			return (horsepower * 1.5) / (last / 7000);
		}
	}
}
Tog bort override från funktionen Calc_Topspeed, o la till int klassifiering på horsepower & last. För mig verkar det funka när jag valde Kör alternativet, är detta lösning tro? eller är det något annat problem som jag inte riktigt förstått.
Edit:
En vän förklarade för mig att man inte behöver ha override om funktionen lägger till ytterligare argument som inte finns med i den funktionen du vill overridea, vilket innebär att det blir en ny funktion i princip, om jag förstått det rätt.
__________________
Senast redigerad av DurrHurr 2022-04-09 kl. 21:53.
Citera
2022-04-09, 21:45
  #9
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av DurrHurr
Kod:
using System;

namespace Fordon_Lastbil
{
	internal class Program
	{
		static void Main(string[] args)
		{
			Fordon volvo = new Fordon(90, "grön");
			Lastbil scania = new Lastbil(400, "vit", 3000);
			Run();
		}
		static void Run()
		{
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Välkommen till fordonssimulatorn.");
				Console.WriteLine("Välj fordon:");
				Console.WriteLine("1 Volvo - bil");
				Console.WriteLine("2 Scania - lastbil");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Run();
				}

				switch (temp)
				{
					case 1:

						Volvo();
						break;
					case 2:
						Scania();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
		static void Volvo()
		{
			int horsepower = 0;
			string color = "vit";
			Console.WriteLine("Hur många hästkrafter har bilen?");
			horsepower = int.Parse(Console.ReadLine());
			Console.WriteLine("Vilken färg är bilen?");
			color = Console.ReadLine();
			Fordon volvo = new Fordon(horsepower, color);
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Vad ska bilen göra?.");
				Console.WriteLine("Välj alternativ:");
				Console.WriteLine("1 Köra");
				Console.WriteLine("2 Tuta");
				Console.WriteLine("3 Huvudmeny");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Volvo();
				}

				switch (temp)
				{
					case 1:
						Console.WriteLine("Den {0}a Volvon kör i {1} km/h", color, volvo.Calc_Topspeed(horsepower)); ;
						Console.ReadKey();
						break;
					case 2:
						volvo.Horn();
						Console.ReadKey();
						break;
					case 3:
						Run();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
		static void Scania()
		{
			int horsepower = 0;
			string color = "vit";
			int last = 0;
			Console.WriteLine("Hur många hästkrafter har fordonet?");
			horsepower = int.Parse(Console.ReadLine());
			Console.WriteLine("Vilken färg är fordonet?");
			color = Console.ReadLine();
			Console.WriteLine("Hur många kilo är lastat på fordonet?");
			last = int.Parse(Console.ReadLine());
			Lastbil scania = new Lastbil(horsepower, color, last);
			int temp = 0;
			do
			{
				Console.Clear();
				Console.WriteLine("Vad ska lastbilen göra?.");
				Console.WriteLine("Välj alternativ:");
				Console.WriteLine("1 Köra");
				Console.WriteLine("2 Tuta");
				Console.WriteLine("3 Huvudmeny");
				Console.Write("\nDitt val: ");
				try
				{
					temp = int.Parse(Console.ReadLine());
				}
				catch (Exception)
				{
					Console.WriteLine("Var god välj en siffra bland menyalternativen.\n" +
						"Tryck vilken knappt som helst för att återgå till menyn.");
					Console.ReadKey(true);
					Scania();
				}

				switch (temp)
				{
					case 1:
						Console.WriteLine("Den {0}a Scanian kör i {1} km/h", color, scania.Calc_Topspeed(horsepower, last)); ;
						Console.ReadKey();
						break;
					case 2:
						scania.Horn();
						Console.ReadKey();
						break;
					case 3:
						Run();
						break;
					case 0:
						Console.WriteLine("Programmet avslutas.");
						break;
					default:
						Console.WriteLine("Felaktig inmatning.");
						Console.ReadKey();
						break;
				}
			} while (temp != 0);
		}
	}
	class Fordon
	{
		protected int horsepower;
		protected string color;

		public Fordon(int horsepower, string color)
		{
			this.horsepower = horsepower;
			this.color = color;
		}
		public virtual double Calc_Topspeed(int horsepower)
		{
			return horsepower * 1.5;
		}
		public void Horn()
		{
			Console.WriteLine("Du tutar.");
		}
	}
	class Lastbil : Fordon
	{
		private int last; //kilogram last
		public Lastbil(int horsepower, string color, int last) : base(horsepower, color)
		{
			this.last = last;
			this.horsepower = horsepower;
			this.color = color;
		}
		public double Calc_Topspeed(int horsepower, int last)
		{
			return (horsepower * 1.5) / (last / 7000);
		}
	}
}
Tog bort override från funktionen Calc_Topspeed, o la till int klassifiering på horsepower & last. För mig verkar det funka när jag valde Kör alternativet, är detta lösning tro? eller är det något annat problem som jag inte riktigt förstått.
Jo jag gjorde just dem, men av någon orsak så blåser mitt program bara rakt förbi körfunktionen och återgår till menyn, när jag ska köra lastbilen.
Det är precis som om jag inte skulle ha en Console.ReadKey() efter Console.Write, fast jag har det.
Allt fungerar som det ska när jag debuggar också, så jag förstår inte vad problemet är.

Edit:
Jo, nu fungerar det.
Tror jag kan ha sett fel på menyn för köra/tuta när den dök upp och trodde det var huvudmenyn.
__________________
Senast redigerad av Bonnatorp 2022-04-09 kl. 21:51.
Citera
2022-04-10, 14:43
  #10
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av Bonnatorp
Jo jag gjorde just dem, men av någon orsak så blåser mitt program bara rakt förbi körfunktionen och återgår till menyn, när jag ska köra lastbilen.
Det är precis som om jag inte skulle ha en Console.ReadKey() efter Console.Write, fast jag har det.
Allt fungerar som det ska när jag debuggar också, så jag förstår inte vad problemet är.

Edit:
Jo, nu fungerar det.
Tror jag kan ha sett fel på menyn för köra/tuta när den dök upp och trodde det var huvudmenyn.

Ska du använda Console.WriteLine() så många ggr är det bättre att köra en multiline-sträng, som är lättare att läsa:

Kod:
Console.WriteLine(@"Välkommen till fordonssimulatorn.
Välj fordon:
1 Volvo - bil
2 Scania - lastbil

Ditt val: ");

Sen är väl inte
Kod:
return (horsepower * 1.5) / (last / 7000);
så snyggt, bättre med:
Kod:
return horsepower * 10500 / last;

Bara skönhetstips för din kod.
Citera
2022-04-10, 15:44
  #11
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Pontiac-Garage
Ska du använda Console.WriteLine() så många ggr är det bättre att köra en multiline-sträng, som är lättare att läsa:

Kod:
Console.WriteLine(@"Välkommen till fordonssimulatorn.
Välj fordon:
1 Volvo - bil
2 Scania - lastbil

Ditt val: ");

Sen är väl inte
Kod:
return (horsepower * 1.5) / (last / 7000);
så snyggt, bättre med:
Kod:
return horsepower * 10500 / last;

Bara skönhetstips för din kod.
Använder man @ för automatiskt radbyte i strängar?
Trodde man behövde traggla manuellt med \n varje rad för det. Kändes som ett rent aber precis som att infoga <br> eller vad det var efter varje rad i HTML dokument som inte använder wordpress eller liknande.

Att jag gjorde så där med hastighetskalkylen var för att det kändes mer naturligt att dela upp det på två faktorer. En faktor för hastigheten i relation till hästkrafterna, och en faktor för hastighetsdelningen i relation till lasten.
Det var mycket enklare att ändra på också om det var lite skevt någonstans, vilket det var då en lastbil på 200 hästar och 2 tons last skulle klara att köra 8km/h eller så.
Citera
2022-04-10, 16:14
  #12
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av Bonnatorp
Använder man @ för automatiskt radbyte i strängar?
Trodde man behövde traggla manuellt med \n varje rad för det. Kändes som ett rent aber precis som att infoga <br> eller vad det var efter varje rad i HTML dokument som inte använder wordpress eller liknande.

Att jag gjorde så där med hastighetskalkylen var för att det kändes mer naturligt att dela upp det på två faktorer. En faktor för hastigheten i relation till hästkrafterna, och en faktor för hastighetsdelningen i relation till lasten.
Det var mycket enklare att ändra på också om det var lite skevt någonstans, vilket det var då en lastbil på 200 hästar och 2 tons last skulle klara att köra 8km/h eller så.

@ funkar på så sätt att radbyten tas med i output, mycket snyggare än massa escape n.

Förstår, tänkte bara att det kan snyggas till.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in