我如何做出正确的if / else if / else陈述?

时间:2019-10-03 16:14:01

标签: c#

我正在尝试使用c#在Unity中为我的游戏开发类创建游戏。我在尝试输入输入时遇到问题。我想做的是,如果我输入例如“ 1”,我希望它现在(现在)响应“您选择了1!”。但它没有播放。如果有帮助,我可以在游戏中使用它。

这是我到目前为止所拥有的

void UserInput(string input)
    {
        if (input == "1")
        {
            print("You choose 1");
        }
        else if (input == "2")
        {
            print("You choose 2");
        }
        else
        {
            print("Invalid Response");
        }
    }

任何帮助都会很棒!谢谢!

编辑:谢谢大家的帮助。我对所有这些都是新手。我很感谢所有回复

4 个答案:

答案 0 :(得分:3)

如果您的输出是输入内容,也许您可​​以发现问题所在:

void UserInput(string input)
{
  Console.WriteLine($"The input was '{input}'");

当输入为空时,单引号很有用,因为这样您将看到The input was ''而不是The input was

答案 1 :(得分:0)

在您的特定情况下,您似乎只想将其输入通知最终用户,在这种情况下,您可以简单地执行以下操作:

public void UserInput(string input) {
    Console.WriteLine($"You choose {input}");
}

但是,如果您只希望处理某些情况(在您的情况下仅为1和2),则可以使用switch语句:

public void UserInput(string input) {
    switch(input) {
        case "1":
        case "2":
            Console.WriteLine($"You choose {input}"); // will only write 1 or 2
            break; // necessary to prevent fall-through
        default:
            Console.WriteLine("Invalid Response");

答案 2 :(得分:0)

另一个解决方案是

void UserInput(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                Console.WriteLine("Invalid Response");
                return;
            }
            Console.WriteLine($"You choose {input}");
        }

答案 3 :(得分:0)

void UserInput(string input){
        default:
               Console.WriteLine("Invalid Input"); break;
        case "1":
               Console.WriteLine("You haven chose 1"); break;
        case "2":
               Console.WriteLine("You have chosen 2"); break;
    }
Console.Write("Input: ");
var Input = Console.ReadLine();
UserInput(Input);