需要一些关于if-else代码的帮助

时间:2018-02-16 12:32:06

标签: c# if-statement

我有一段我正在使用的代码,包括检查条件并向后移动以在输入无效时重新输入信息。请在下面找到代码:

Gender:
Console.WriteLine("Select Gender"
    +"\n (M)ale/(F)emale");
input = Console.ReadLine();

if (input=="M" || input==("m"))
    commonobj.gender = 1;

else if (input != ("F")||input!="f")
{
    Console.WriteLine("Invalid input, please enter again");
    goto Gender;
}

预期行为 如果用户输入“M”或“m”,则更改对象变量的值。 如果用户输入“F”或“f”,则对象变量的值不变。 如果用户输入任何其他值,则应显示错误语句,并要求用户重新输入信息。

使用的变量: input - 局部变量,类型String | commonobj.gender - 对象变量

当前行为: 在控制台上输入“F”或“f”会在“else if”循环下显示代码,

我做错了什么?

注意:代码按预期执行,并在输入中选择“m”。

1 个答案:

答案 0 :(得分:0)

您需要一个并在最后的条件声明中

Gender:
    Console.WriteLine("Select Gender"
        +"\n (M)ale/(F)emale");
    input = Console.ReadLine();

    if (input=="M" || input==("m")) {
        commonobj.gender = 1;

    } else if (input != ("F") && input!="f")
    {
        Console.WriteLine("Invalid input, please enter again");
        goto Gender;
    }

最好使用

        if (input.Equals("M", StringComparison.CurrentCultureIgnoreCase)) { 
            commonobj.gender = 1;

        } else if (!input.Equals("F", StringComparison.CurrentCultureIgnoreCase))
        {
            Console.WriteLine("Invalid input, please enter again");
            goto Gender;
        }