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

C# 需要一些关于if-else代码的帮助吗,c#,if-statement,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") {

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

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”,则对象变量的值不变。 如果用户输入任何其他值,则应显示错误声明,并要求用户重新输入信息

使用的变量: 输入-局部变量,类型字符串 |commonobj.gender-对象变量

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

我做错了什么


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

您需要在最后一个条件语句中使用and

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;
        }

else如果(input!=“F”)和&input!=“F”)
应该是
&
@Saleem,只要你表现出足够的努力,就可以寻求帮助。旁注:
goto
在上下文中是邪恶的;更改为循环,例如
为一。@Nekeniehl-最好使用
string.Equals(输入“m”,StringComparison.OrdinalIgnoreCase)
//或与您喜欢的字符串比较这实际上是一个问得很好的问题请注意,此代码从不设置
commonobj.gender
,如果它是女性的话。您缺少一个}。@RandRandom这是根据OP的预期行为:“如果用户输入'F'或'F',则对象变量的值不变。”@RandRandom“如果用户输入‘F’或‘F’,对象变量的值将保持不变”@BenMorris可能是那些对自己意见低质量问题的答案投反对票的人