使用C#中的switch语句存储数据

时间:2017-08-08 20:50:19

标签: c# switch-statement

我需要有关如何在字符串中存储内容然后通过菜单显示它的帮助。当我尝试将值保存到switch语句时,即使我将字符串放在switch语句之外,它也不会保存它。我还需要知道如何以后清理字符串,所以程序重置自己。 这就是我到目前为止所做的事情:

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

namespace Ryggsäcken_NTI_Uppgift2
{
    class Program
    {
        static void Main(string[] args)    
        {
            bool isRunning = true;
            while(isRunning)

            {
                Console.WriteLine("\n\tVälkommen till ryggsäcken! vänligen välj ett av dessa val med en siffra.");
                Console.WriteLine("\t[0]För en kort Instruktion till hur detta program fungerar, välj siffra 0");
                Console.WriteLine("\t[1]För att spara föremål i ryggsäcken, välj siffra 1");
                Console.WriteLine("\t[2]För att visa vad som ligger i ryggsäcken, välj val 2 ");
                Console.WriteLine("\t[3]För att rensa ryggsäcken välj val 3 ");
                Console.WriteLine("\t[4]För att avsluta, välj siffra 4");
                Console.Write("\tVälj en siffra: ");
                int menyVal = Convert.ToInt32(Console.ReadLine());

                string item ="";

                //Använda menyvalet med if eller switch

                switch (menyVal)
                {
                    case 0:
                        { 
                            //Anvisningar till användaren
                            Console.WriteLine("Detta program hjälper dig att spara dina föremål som du vill lägga i ryggsäcken. För att spara ett föremål, vänligen välj val 1. För att öppna ryggsäcken och visa vad som är sparat välj val 2. För att rensa all data som sparats i ryggsäcken, välj då val 3. För att avsluta programmet, välj 4");
                            break;
                        }

                    case 1:
                        {

                            //Spara användarens föremål
                            Console.Write("skriv vad föremålet heter för att spara det i ryggsäcken: ");

                            item = Console.ReadLine();

                            break;
                        }
                    case 2:
                        {

                            //visa vad som ligger sparat i ryggsäcken
                            Console.WriteLine("Detta ligger just nu i ryggsäcken(visas inget är den tom): ");

                            Console.Write(item);

                            break;
                        }
                    case 3:
                        {
                            //Rensa ryggsäcken
                            Console.WriteLine("Rensar ryggsäcken... Nu kan du börja om från början igen.");
                            break;
                        }

                    case 4:
                        {
                            //Avsluta programmet
                            Console.WriteLine("Ryggsäcken stängs, Progammet avslutas. Hoppas du är nöjd, Hejdå!");
                            isRunning = false;
                            break;
                        }

                    default:
                        {

                            // med uppmaningen att skriva 0 - 4

                            Console.WriteLine("Du måste välja en siffra mellan 0-4!");

                            break;
                        }
                }

            }   
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您需要将string item初始化行放在while(running)循环之外:

bool isRunning = true;
string item = "";
while(isRunning)
{
    ...
}

否则每次迭代循环重新声明并重新初始化item