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
if userSelection.ToUpper() == DEPOSIT
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.
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;