9 svar
256 visningar
sajo0804 8
Postad: 30 jun 2022 12:07

jag vill göra en tryParse eller en tryCatch men får inte till det

Jag vet inte hur jag ska få in en av ovanstående i rubriken, skulle gärna ha en tryCatch som sänder ut felmeddelande men som jag förstått är tryParse bättre vid sifferinmatning. Hur som helst får jag inte till nåt av det. Hur ska jag göra?

 

if (menyVal == 1)

{
Console.Clear();
Console.WriteLine("Du har valt menyval 1");
Console.WriteLine("Du är intresserad av att köpa en bil, var vänlig fyll i frågorna.");
Console.WriteLine("Vilken bilmodell är du intresserad av?");
String bil = Console.ReadLine();
Console.WriteLine("Hur långt får den ha gått? (endast sifferinmatning");
int milantal = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Vad får den kosta? (endast sifferinmatning");
int pris = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Du vill köpa en" + " " + bil + " " + "som inte har gått längre än " + " " + milantal + " " + "mil" + " " + "och den får inte kosta mer än" + " " + pris + "" +
"kr");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}

Laguna Online 30473
Postad: 30 jun 2022 13:33

Hur ser det ut när du försöker?

sajo0804 8
Postad: 30 jun 2022 14:24 Redigerad: 30 jun 2022 14:25

Jag får felmeddelande när jag testar skriva med bokstäver där det är int och jag kommer inte förbi det. sidan stängs ned och jag får ett utropstecken på raden.

Laguna Online 30473
Postad: 30 jun 2022 14:32

Hur ser koden ut?

sajo0804 8
Postad: 30 jun 2022 16:17 Redigerad: 30 jun 2022 16:17

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace testar1
{
internal class Program
{
public static void PrintX(int x)

{


}

int x = 0;

static void Main(string[] args)
{
bool isRunning = true; //fortsätter till visar värde falskt
while (isRunning)

{ //loop

Console.Clear(); //Cleaning the menu

//Where the menu starts
{
Console.WriteLine("Hej och välkommen till Bertils bilfirma.");
Console.WriteLine("**************************************************");
Console.WriteLine("Jag kommer att presentera valen för dig, tryck 1 för att köpa,tryck 2 för att sälja och tryck 3 för kundtjänst\n");
Console.WriteLine("[1] Vill du köpa en bil tryck 1 och enter");
Console.WriteLine("[2] Vill du sälja bil tryck 2 och enter");
Console.WriteLine("[3] Kontakta kundtjänst");
Console.WriteLine("[4] Boka tid för service");
Console.WriteLine("[5] Boka tid för reparation");
Console.WriteLine("[6] Garantiärende");
Console.WriteLine("[7] Personalhantering");
Console.WriteLine("[8] Avsluta");
//Stops loop
Console.WriteLine("[8] Avsluta programmet");
//Getting users choise
Console.WriteLine("Fyll i ditt val och tryck enter");
int menyVal = Convert.ToInt32(Console.ReadLine());

//Conditions to get the function of choice
if (menyVal == 1)

{
Console.Clear();
Console.WriteLine("Du har valt menyval 1");
Console.WriteLine("Du är intresserad av att köpa en bil, var vänlig fyll i frågorna.");
Console.WriteLine("Vilken bilmodell är du intresserad av?");
String bil = Console.ReadLine();
Console.WriteLine("Hur långt får den ha gått? (endast sifferinmatning");
int milantal = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Vad får den kosta? (endast sifferinmatning");
int pris = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Du vill köpa en" + " " + bil + " " + "som inte har gått längre än " + " " + milantal + " " + "mil" + " " + "och den får inte kosta mer än" + " " + pris + "" +
"kr");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}

else if (menyVal == 2)
{
Console.Clear();
Console.WriteLine("Du har valt menyval 2");
Console.WriteLine("Du har är intresserad av att sälja en bil, var vänlig fyll i frågorna.");
Console.WriteLine("Vilken bilmodell är det du vill sälja?");
String bil = Console.ReadLine();
Console.WriteLine("Hur långt har den gått? (endast sifferinmatning)");
int milantal = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Vilken årmodell är det? (endast sifferinmatning");
int årsmodell = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Du vill sälja en" + " " + bil + " " + "som har gått" + " " + milantal + " " + "mil" + " " + "och är av årsmodell" + " " + årsmodell);
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}

else if (menyVal == 3)
{
Console.Clear();
Console.WriteLine("Du har valt menyval 3");
Console.WriteLine("Du vill kontakta kundtjänst");
Console.WriteLine("Öppettider vardagar mellan 7-16");
Console.WriteLine("För att komma i kontakt med Fredrik ring 07058455X8");
Console.WriteLine("För att komma i kontakt med Svea ring 0789652XX");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}
else if (menyVal == 4)
{
Console.Clear();
Console.WriteLine("Du har valt menyval 4");
Console.WriteLine("Du vill boka tid för service");
Console.WriteLine("Öppettider för bokning är vardagar mellan kl.7-16 och tidsbokning sker endast via telefon");
Console.WriteLine("Boka tid för service på 07056879XX");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}
else if (menyVal == 5)
{
Console.Clear();
Console.WriteLine("Du har valt menyval 5");
Console.WriteLine("Du vill boka tid för reparation");
Console.WriteLine("Öpppettider för bokning av reparation är vardagar mellan kl.7-15 och tidsbokning sker endast via telefon");
Console.WriteLine("Boka tid för reparation på 0789552XX");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}
else if (menyVal == 6)
{
Console.Clear();
Console.WriteLine("Du har valt menyval 6");
Console.WriteLine("Du har frågor rörande garantier");
Console.WriteLine("Öppettider är vardagar mellan kl.12-16");
Console.WriteLine("Alla frågor rörande garantier sker via telefon 07615682XX");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}
else if (menyVal == 7)
{
Console.Clear();
Console.WriteLine("Du har valt menyval 7");
Console.WriteLine("Personalhantering");
Console.WriteLine("Kontakta HR vardagar mellan 8-16 för frågor som berör ditt arbete. ");
Console.WriteLine("Ring 07058964XX");
Console.WriteLine("Tryck enter för att återgå till menyn");
Console.ReadKey();
}
//To exit the program
else if (menyVal == 8)
{
Console.Clear();
Console.WriteLine("Du har valt att avsluta programmet!");
Console.WriteLine("Programmet har avslutats och välkommen åter!");
Console.WriteLine("Tryck enter för att stänga!");
Console.ReadKey();
Console.Clear();
isRunning = false;
break;
}
//If user press number outside of choices in menu
else
{
Console.Clear();
Console.WriteLine("Du har gjort ett ogiltigt val!\nGå tillbaka till menyn och gör ett nytt val");
Console.WriteLine("Tryck enter för att gå tillbaka till menyn");
Console.ReadKey();

{

}
}
}
}
}
}
}

Laguna Online 30473
Postad: 30 jun 2022 18:07

Det skulle räcka med den kod som gör TryParse eller try/catch, men jag ser ingen sån.

sajo0804 8
Postad: 30 jun 2022 20:09 Redigerad: 30 jun 2022 20:10

Det är jag med på, men jag inte får dit den på rätt plats.  Vart i texten ska det koden det ska stå. Mina försök hittills har varit fel. 

Fermatrix 7841 – Fd. Medlem
Postad: 1 jul 2022 20:08

Vart vill du ha din try & catch? Kan du visa och ditt senaste försök och förklara vad  du förväntar dig koden skall göra?

Karro78 15
Postad: 9 feb 2023 12:19

Jag har nyss lärt mig att om man ska skriva en meny med många olika val och lägger in som val som detta (menyVal == 8) så behöver det se ut så här (menyval == "8") för att inte få felmeddeladen.

Laguna Online 30473
Postad: 9 feb 2023 12:44

Det beror ju alldeles på hur menyvalet görs. 8 och "8" är båda rimliga värden, men de är olika saker.

Svara
Close