首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Console.ReadKey似乎读错了钥匙?

Console.ReadKey似乎读错了钥匙?
EN

Stack Overflow用户
提问于 2020-03-15 21:26:17
回答 3查看 149关注 0票数 1

我刚刚开始,所以我正在从头开始编写我的第一个控制台应用程序。我有这行代码,当我点击d时,它将正确地带我进入下一步,并设置为true的不利条件,但是如果我按了a,它就会出于某种原因执行else语句。知道原因是什么吗?

代码语言:javascript
复制
Console.WriteLine("Press the A key for advantage, or the D key for disadvantage");
var rollType = Console.ReadKey();
Console.WriteLine(System.Environment.NewLine);
if (rollType.Key == ConsoleKey.A)
{
    advantage = true;
}
if (rollType.Key == ConsoleKey.D)
{
    disadvantage = true;
}
else
{
    Console.WriteLine("Invalid Input");
    StartApp();
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-15 23:06:11

只要加上,做这个小小的改变!(在第二个条件中添加else )

代码语言:javascript
复制
if (rollType.Key == ConsoleKey.A)
{
    advantage = true;
}
else if (rollType.Key == ConsoleKey.D)
{
    disadvantage = true;
}
else
{
    Console.WriteLine("Invalid Input");
    StartApp();
}

在此之前,您的控制台将读取一个A键并输入第一个条件。因为第二个条件和第三个条件与第一个条件是分开的,所以第二个条件也会被检查,如果不是真的话(在这种情况下,这个条件不是真),不管输入什么,它都会被选中。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2020-03-15 21:32:45

看起来这个程序就像你写的那样被执行了。

代码语言:javascript
复制
if (rollType.Key == ConsoleKey.A)
            {
                advantage = true;
            } // First conditional check ends here

// This is another conditional block
            if (rollType.Key == ConsoleKey.D)
            {
                disadvantage = true;
            }
            else // You pressed A, so this block is executed
            {
                Console.WriteLine("Invalid Input");
                StartApp();
            }
票数 0
EN

Stack Overflow用户

发布于 2020-03-15 21:32:52

如果你击中A,它就会把A的其他部分去掉。毕竟,A等于A,但A不等于D。

您想要的可能是一个开关/case语句。

代码语言:javascript
复制
switch(rollType){
case ConsoleKey.A:
  advantage = true;
  break;
case ConsoleKey.D:
  disadvantage = true;
  break;
default:
  Console.WriteLine("Invalid Input");
  break;
}

开关/case语句和do/while循环-这两个是控制台程序流的基础。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60697807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档