2017-08-08 16 views
-3

文字列の中に何かを格納し、その後メニューに表示する方法について助けが必要です。 switch文に値を保存しようとすると、switch文の外側に文字列を置いても保存されません。後で文字列を消去する方法も知っている必要があるので、プログラム自体がリセットされます。ここ は、私がこれまで行っているものです:Cで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

誰もが何が起こっているのかを知るために、プログラム内のコメントと文字列を英語に翻訳できますか?そして、間隔を固定してください –

答えて

3

あなたはwhile(running)ループの外string item初期化ラインを配置する必要があります。

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

それ以外の場合はループ再宣言しておき、反復して再初期化item

+0

ありがとうございました!ケース番号3でループをリセットするにはどうすればよいですか? –

+0

'ループをリセット'すると、オプション1の値を入力していないかのようにアイテムを元の値にリセットすることになりますか?その場合は 'case 3:'ブロックの 'break'の前に' item = ""; 'と言ってください –

+0

ありがとう!文字列変数に複数の文字列を保存する以外はすべて動作します。一度に複数の文字列をitemという文字列に保存するにはどうすればよいですか? –

関連する問題