不确定我是否忽略了一些非常简单的事情,但我试图创建一个程序,允许用户输入2个字母中的1个,然后根据输入运行代码。看起来很简单但我遇到了几个错误,我认为这可能有用。这是代码:
string name = (Console.ReadLine());
Console.WriteLine("Is " + name + " ok?");
Console.WriteLine("\n(Y)es\n(N)o");
char ansys = Console.ReadKey();
if (ansys = ConsoleKey.Y)
Console.Clear();
else
{
Console.WriteLine();
Console.WriteLine("Enter letters only");
}
我在其他部分添加了(未完成)只是为了了解我是否也按照预期的目标向正确的方向前进。如果Y或N都不按这种方式,我是否能够制作一个触发的else语句?
答案 0 :(得分:1)
嗯,首先,你正在做作业,而不是比较:
if (ansys.Key = ConsoleKey.Y)
错了,请使用:
if (ansys.Key == ConsoleKey.X)
==
是比较,=
是作业。不要混淆它们,它可能会导致严重的问题。
对于你的问题,如果你只是添加else if
语句检查“否”答案,那么如果按下Y或N,则不会触发语句。如果至少执行if语句,则不会执行else语句。
您的代码应如下所示:
if (ansys == ConsoleKey.Y) {
// code if yes
}
else if (ansys == ConsoleKey.N) {
// code if no
}
else {
// code if neither
}
修改强>
由于我的主要语言不是C#,我查看文档来检查我的答案。我发现如果你使用ReadKey()
它不返回ConsoleKey
,它会返回struct ConsoleKeyInfo
。您需要使用Key
的{{1}}成员才能访问所按下的密钥。请重新检查代码。
答案 1 :(得分:0)
尝试这种方法:
ConsoleKeyInfo cki;
cki = Console.ReadKey();
if (cki.Key == ConsoleKey.Y)
{
Console.Clear();
}
else if (cki.Key == Console.N)
{
Console.Clear();
}
else
{
Console.WriteLine();
Console.WriteLine("Enter letters only");
}
您可以在此处找到示例:ReadKey - examples
答案 2 :(得分:0)
试试这个:
string name = (Console.ReadLine());
Console.WriteLine("Is " + name + " ok?");
Console.WriteLine("\n(Y)es\n(N)o");
var ansys = Console.ReadKey();
if (ansys.KeyChar == 'y' || ansys.KeyChar == 'Y')
{
//Handle yes case
}
if (ansys.KeyChar == 'n' || ansys.KeyChar == 'N')
{
//Handle no case
}
else
{
Console.WriteLine();
Console.WriteLine("Enter letters only");
}
答案 3 :(得分:0)
试试这个(无法测试)
Y
如果在询问Y或N时输入是另一回事,它会再次询问姓名确认。
string name = "";
while (name.equals(""))
{
name = (Console.ReadLine());
Console.WriteLine("Is " + name + " ok?");
String answer = "";
while(answer.equals(""))
{
Console.WriteLine("\n(Y)es\n(N)o");
char ansys = Console.ReadKey();
if (ansys == ConsoleKey.Y || ansys == ConsoleKey.N)
{
answer = ansys.ToString();
Console.Clear();
}
else
{
Console.WriteLine();
Console.WriteLine("Enter letters only!!");
}
}
if(!answer.equals("Y"))
name = "";
}
我不确定ansys.ToString()
是否是一个有效的方法,如果按下的键是Y,则返回“Y”字符串