4 svar
52 visningar
Hjälpmedplugget 11
Postad: 24 nov 18:28

förutse user error i C# switch statement meny

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApp5

{

internal class Program

{

static void Main(string[] args)

{

while (true)

{

Console.WriteLine("Menu. Select an option: ");

Console.WriteLine("[D]eposit");

Console.WriteLine("[W]ithdrawal");

Console.WriteLine("[B]alance");

Console.WriteLine("[I]nterest payment");

Console.WriteLine("[E]nd");

string userSelection = Console.ReadLine();

switch (userSelection)

{

case "Deposit":

Console.WriteLine("How much money would you like to deposit?");

string sum = Console.ReadLine();

break;

case "Withdrawal":

Console.WriteLine("Let's withdraw");

break;

case "Balance":

Console.WriteLine("Let's check the balance");

break;

case "Interest payment":

Console.WriteLine("Please enter an annual interest payment");

break;

case "End":

Console.WriteLine("End");

break;

default:

Console.WriteLine("Invalid. Try once more");

break;

}

}

}

}

}

 

Jag har fastnat. I början får jag upp min meny och det funkar att välja allt i menyn men det funkar exempelvis bara att välja Deposit om man stavar det på det sättet, alltså: Deposit

Om användaren skulle skriva "deposit" eller "DEPOSIT" så skulle det inte funka, då får jag upp default meddelandet i min switch statement. Hur gör jag för att "okeja" oavsett om det är stora eller små bokstäver som används? Har försökt men har fastnat

Bubo 7404
Postad: 24 nov 18:43

if userSelection.ToUpper() == DEPOSIT

sictransit 1087 – Livehjälpare
Postad: 24 nov 20:09 Redigerad: 24 nov 20:10

Utan indentering är din kod oerhört svårläst, precis som thedifference svarade förra gången du frågade.

Använd funktionen "infoga programmeringskod" {:} (och välj C#) så skall jag ta mig en titt.

Laguna Online 30618
Postad: 25 nov 04:43 Redigerad: 25 nov 04:56

Någonting i den här stilen:

switch (userSelection.toLower())
{
     case "deposit":

(Menar du "förutse"? "Förhindra" känns bättre.)

En idé är att omvandla det användaren skriver till små bokstäver. Sedan verkar det som om du vill att man skall kunna skriva enbart "d" istället för "deposit".

Så här kan man göra:

// Convert the user's input to lowercase.
string userSelection = Console.ReadLine().ToLowerInvariant();

switch (userSelection)
{
	// Accepts both a full word and a single letter.
	case "deposit":
	case "d":
		Console.WriteLine("How much money would you like to deposit?");
		string sum = Console.ReadLine();
		break;
Svara
Close