5 svar
505 visningar
Mattevaldsson 6 – Fd. Medlem
Postad: 18 feb 2021 20:02

banksimulator

Hej, en uppgift som jag inte får riktigt igång. Min meny fungerar som den ska och som jag vill. Men när jag skriver någon t.ex. [I] så säger den Ohanterat undertag i cmd. Mitt mål är att jag vill min "bank" ska handtera insättning, Saldo + ta ut pengar.   

Jag kolla upp vad som var felet, försökt fixa det. Men har ej gått bra. 

 

Här är min cod eller fall

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

namespace Banksimultor_övning
{
class Program
{

static void Main(string[] args)
{


// ska göra en bank som jag kan sätta in pengar. Som jag kan göra Loop med.


while (true)
// ska skriva bankens menyer.
{
Console.WriteLine("Meny:");
Console.WriteLine("[I]nsättningt");
Console.WriteLine("[U]ttag");
Console.WriteLine("[S]aldo");
Console.WriteLine("[A]sluta");
}
string valSelection = Console.ReadLine();
int guld = Convert.ToInt32(valSelection);
while (true)
{
// Vad Spelare kan välja på i menyn. Har 100000 guld som ska in på banken.

if (valSelection == "I" || valSelection == "i")
{
Console.WriteLine(" === Instättning till banken: ");
// Gör en insättnings kod här.
}
else if (valSelection == "H" || valSelection == "h")
{
Console.WriteLine("Uttaning: ");
// Gör en Uttanings kod här.
}
else if (valSelection == "S" || valSelection == "s")
{
Console.WriteLine("Så här mycket guld har du i banken: ");
// Gör kod för hur mycket jag har kvar i banken.
}
else if (valSelection == "A" || valSelection == "a")
{
break; // avbryter while-loopen
}
else
{
Console.WriteLine("Error");
}

Laguna 28468
Postad: 18 feb 2021 20:34

När du gör

    int guld = Convert.ToInt32(valSelection);

så förutsätter du att du har läst in ett heltal. Du ska antagligen läsa in beloppet senare, t. ex. i koden för I. 

world killer 1 – Fd. Medlem
Postad: 18 feb 2021 21:16

smartare sätt att convertera en string till en int är int.Parse(valSelection) men som Laguana sa, det är inte säkert att användaren kommer trycka in en heltals siffra så då får du använda dig av en try catch block som fångar error meddelandet och tillåter dig fortsätta oavsett

när du sen ska kolla vilken valSelection du har att göra med så finns det också smartare sätt att hantera det, använd ToLower()

if(valSelection.ToLower() == "i")

{

}

etc

Lindehaven 820 – Lärare
Postad: 19 feb 2021 13:43

Eller, om man inte vill/bör/får använda try-catch, så kan man använda TryParse.

Mattevaldsson 6 – Fd. Medlem
Postad: 19 feb 2021 15:38

Jag är rätt ny i c#, det ni nämner känner jag inte till som t.ex. [ ToLower() ] för det har jag inte gått genom än. Men ska testa se hur det går. 

Lindehaven 820 – Lärare
Postad: 19 feb 2021 18:16

ToLower() är en metod i string-klassen som ändrar alla tecken i strängen till gemener. Objektet valSelection är av klassen string, så valSelection.ToLower() ändrar alla tecken i valSelection till gemener.

Svara Avbryt
Close