C# 在if语句C中保存值#
我是C#的新手,我在编写一个程序时遇到了一些困难,该程序将允许您在变量中保存值,一切正常,只是我无法将值保存到变量中。代码如下:C# 在if语句C中保存值#,c#,C#,我是C#的新手,我在编写一个程序时遇到了一些困难,该程序将允许您在变量中保存值,一切正常,只是我无法将值保存到变量中。代码如下: while (true) { //Menu Console.WriteLine (" \n\tWelcome!"); Console.WriteLine (" \t[1]Store value"); Console.WriteLine (" \t[2]Write message"); Console.WriteLine (" \
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");
}
}
当它运行时,它总是将userMsg创建为null。这意味着当用户选择“1”时,它最多只能“保存”1个值。但是,如果用户再次进入菜单时选择“2”,则不会显示此信息,因为userMsg将再次设置为null 我的假设是,您试图保存某人选择“1”的次数,然后显示如果用户点击选项“2” 坚持这一点:
//Users message
string usrMsg = null;
在“while”循环之外。只需将usrMsg变量作为全局变量从while块中移出,值就会被保存
//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");
}
}
你的代码有什么问题?您期望它做什么?它做什么?欢迎使用堆栈溢出。请注意,由于您在每次迭代中都创建了新的
usrMsg
,因此它不会保存旧值。除此之外,请清楚地解释我不能准确地将值保存到变量中是什么意思。首先,请阅读。“一个允许您将值保存在变量中的程序,一切正常,但我无法将值保存到变量中”
-那么一切都不正常了?;)@Alex Consider使用<代码>切换case < /代码>代替所有的<代码>…..如果….<代码>,并输入<代码>转换。totInt32 < /代码>尝试<代码>尝试catch <代码> Bug您不匹配MeUE项3和4——当用户进入3(清除控制台)时,您休息!现在开始工作了,谢谢!还有什么方法可以清除变量吗?只需创建一个新的选项fx<代码>如果(选项==5)字符串userMsg=null代码>@Alex-这取决于您想如何清除它。如果您希望用户能够像存储它一样清除它,那么添加另一个菜单项,并在该选项下放置userMsg=null;此外,如果这有效,请将此标记为答案。它现在正以我希望的方式工作!非常感谢!:)@亚历克斯-为什么你现在把我的答案从正确答案中删除了?我的回答是正确的,而且比哈姆泽早得多。