我正在尝试创建一个具有密码访问权限的控制台应用程序,设法编写代码以询问密码,但我希望它重复询问密码(如果它是错误的)4次只是没有永远,我试过用for循环来做但它没有用,有人能告诉我问题在哪里吗?
class Password
{
public static bool verifyPassword()
{
bool loginSuccess1;
Console.WriteLine("enter password");
string userInput = Console.ReadLine();
string password = "12";
loginSuccess1 = (userInput == password);
return loginSuccess1;
}
public static void checkPassword()
{
bool loginSuccess;
int loginCount = 1;
loginSuccess = verifyPassword();
while (!loginSuccess && loginCount < 5)
{
verifyPassword();
if (!loginSuccess)
loginCount++;
}
if (loginSuccess)
{
Console.WriteLine("correct answer");
}
}
}
class Program
{
static void Main(string[] args)
{
Password.checkPassword();
}
}
答案 0 :(得分:0)
如果密码不正确,则会调用wrongPassword
。然后调用verifyPassword
4次(如您所怀疑的那样),除非您再次错误,它再次调用wrongPassword
,再次调用verifyPassword
四次......你明白了。
我会verifyPassword
返回一个bool(如果成功),而不是调用wrongPassword
(只是删除该函数)然后只有一个新函数:
bool loginSuccess;
int loginCount = 1;
while (!loginSuccess && loginCount < 5)
{
loginSuccess = VerifyPassword();
if (!loginSuccess)
loginCount++;
}
现在你没有递归循环,它只会检查4次。