C# 嵌套While语句不工作
我有一个控制台程序,它根据用户输入的长度和宽度绘制形状。当这项工作完成时。我想问用户是否想画另一个形状,如果是的话。它应该重新启动程序。此外,当要求用户输入Y表示是或N表示否时,我希望确保用户不能超出这两个字母。我目前在我的主要方法中使用这个C# 嵌套While语句不工作,c#,console,C#,Console,我有一个控制台程序,它根据用户输入的长度和宽度绘制形状。当这项工作完成时。我想问用户是否想画另一个形状,如果是的话。它应该重新启动程序。此外,当要求用户输入Y表示是或N表示否时,我希望确保用户不能超出这两个字母。我目前在我的主要方法中使用这个 DrawShape mn = new DrawShape(); mn.ans = "y"; while (mn.ans.ToLower() == "y") { try { mn.Lenght(); Conso
DrawShape mn = new DrawShape();
mn.ans = "y";
while (mn.ans.ToLower() == "y")
{
try
{
mn.Lenght();
Console.WriteLine();
mn.Breadth();
Console.WriteLine();
mn.Draw();
Console.WriteLine("\n");
mn.Remark();
Console.WriteLine("\n\nDO YOU WANT TO REDRAW A SHAPE? \nPRESS Y - YES or N - NO");
mn.ans = Console.ReadLine();
Console.WriteLine();
while (mn.ans.ToLower() != "y" || mn.ans.ToLower() != "n")
{
Console.WriteLine("\nPLEASE PRESS Y - YES or N - NO");
mn.ans = Console.ReadLine();
}
}
catch (Exception e)
{
Console.WriteLine("\n" + e.Message);
Console.WriteLine();
}
}
这不起作用,因为这是我得到的输出
这表明无论我输入什么,错误消息仍然显示
请问我做错了什么?如果您使用了错误的运算符,请使用
&&
而不是|
:
while (mn.ans.ToLower() != "y" && mn.ans.ToLower() != "n") {
Console.WriteLine("\nPLEASE PRESS Y - YES or N - NO");
mn.ans = Console.ReadLine();
}
或者这个:
while (!(mn.ans.ToLower() == "y" || mn.ans.ToLower() == "n")) {
Console.WriteLine("\nPLEASE PRESS Y - YES or N - NO");
mn.ans = Console.ReadLine();
}
注意:应将mn.ans.ToLower()
存储到变量中,以避免重复代码。
您还可以尝试使用
Equals
方法,该方法支持通过传入的StringComparison.CurrentCultureInoRecase
不敏感地比较字符串大小写。如果使用了错误的运算符,请使用&
而不是|
:
while (mn.ans.ToLower() != "y" && mn.ans.ToLower() != "n") {
Console.WriteLine("\nPLEASE PRESS Y - YES or N - NO");
mn.ans = Console.ReadLine();
}
或者这个:
while (!(mn.ans.ToLower() == "y" || mn.ans.ToLower() == "n")) {
Console.WriteLine("\nPLEASE PRESS Y - YES or N - NO");
mn.ans = Console.ReadLine();
}
注意:应将mn.ans.ToLower()
存储到变量中,以避免重复代码。
您还可以尝试使用
Equals
方法,该方法支持通过传入的StringComparison.CurrentCultureInoRecase
不敏感地比较字符串大小写。这与Windows Media Player有何关系?@luiscubal抱歉,这是一个错误。我忘了在我的最后一个问题中清除标签这与Windows Media Player有什么关系?@luiscubal抱歉,这是个错误。我忘了在最后一个问题中清除标签谢谢。愚蠢的我一定忽略了,谢谢。愚蠢的我一定忽略了这一点