2015-12-21 72 views
-2

我是C#的新手,編寫一個程序可以讓你將值保存在一個變量中,一切工作正常,但我無法保存值進入我的變量。代碼如下:在if語句C中保存值#

while (true) 
{ 
    //Menu 
    Console.WriteLine (" \n\tWelcome!"); 
    Console.WriteLine (" \t[1]Store value"); 
    Console.WriteLine (" \t[2]Write message"); 
    Console.WriteLine (" \t[3]Clear the console"); 
    Console.WriteLine (" \t[4]Shut down program"); 
    Console.Write("\tChoose: "); 

    //Users choice 
    int choice = Convert.ToInt32 (Console.ReadLine()); 
    //Users message 
    string usrMsg = null; 

    //if statement 
    if (choice == 1) { 
     usrMsg += Console.ReadLine(); 
    } else if (choice == 2) { 
     Console.WriteLine (usrMsg); 
    } else if (choice == 3) { 
     //Shuts down program 
     break; 
    } else if (choice == 4) { 
     //Clear program 
     Console.Clear(); 
    } 
    else 
    { 
     Console.WriteLine("please enter a number between 1-4"); 
    } 
} 
+2

你的代碼有什麼問題?你期望它做什麼,它做了什麼? –

+4

歡迎來到Stack Overflow。請注意,自從您在每次迭代中創建新的'usrMsg'後,它都不會保存舊值。除此之外,請清楚解釋_I無法將值完全保存到我的變量中。請閱讀[常見問題],[問]和[幫助]作爲開始..「 –

+2

'」一個程序,它可以讓你將值保存在一個變量中,一切正常,除非我不能將值保存到變量中「' - 那麼一切工作都不好嗎? ;) – DGibbs

回答

0

當它運行時,它總是將userMsg創建爲null。這意味着當用戶選擇'1'時,最多隻會'保存'1個值。但是,如果用戶選擇「2」,則用戶再次進入菜單時userMsg將被重新設置爲空,否則將永遠不會顯示。

我的假設是,您正在嘗試保存某人選擇「1」的次數,然後顯示該用戶是否點擊選項「2」。

棒這樣的:

//Users message 
string usrMsg = null; 

的 '而' 循環外。

+0

現在正在工作,謝謝!有沒有辦法清除變量? – Alex

+0

只需製作一個新選項fx。 'if(choice == 5)string userMsg = null;' –

+0

@Alex - 這取決於你想如何清除它。如果你希望用戶能夠清除它,就像他們能夠存儲它然後添加另一個菜單項,並根據該選擇只需將userMsg = null;另外,如果這有效,請將其標記爲答案。 – sr28

1

您只需將塊中的usrMsg變量移出,並將其保存爲全局值。

 //Users message 
     string usrMsg = null; 

     while (true) 
     { 
      //Menu 
      Console.WriteLine(" \n\tWelcome!"); 
      Console.WriteLine(" \t[1]Store value"); 
      Console.WriteLine(" \t[2]Write message"); 
      Console.WriteLine(" \t[3]Clear the console"); 
      Console.WriteLine(" \t[4SShut down program"); 
      Console.Write("\tChoose: "); 

      //Users choice 
      int choice = Convert.ToInt32(Console.ReadLine()); 


      //if statement 
      if (choice == 1) 
      { 
       usrMsg += Console.ReadLine(); 
      } 
      else if (choice == 2) 
      { 
       Console.WriteLine(usrMsg); 
      } 
      else if (choice == 3) 
      { 
       //Shuts down program 
       break; 
      } 
      else if (choice == 4) 
      { 
       //Clear program 
       Console.Clear(); 
      } 
      else 
      { 
       Console.WriteLine("please enter a number between 1-4"); 
      } 
     }