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可能是那些对自己意见低质量问题的答案投反对票的人