我有一段我正在使用的代码,包括检查条件并向后移动以在输入无效时重新输入信息。请在下面找到代码:
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”。
答案 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;
}