我必须编写一个代码,如果您尝试5
登录尝试失败,请将用户锁定30
分钟。
这是计算尝试次数的登录代码
int InvalidLoginAttempts = 0;
for (int i = 0; i <5; i++){
Console.WriteLine("Enter username");
string username = Console.ReadLine();
Console.WriteLine("Enter password");
string password = Console.ReadLine();
if (username != "valid" || password != "valid")
InvalidLoginAttempts++;
else
break;
}
if (InvalidLoginAttempts > 5)
Console.WriteLine("Login failure");
else
Console.WriteLine("Login successful");
Console.ReadKey();
如果InvalidLoginAttempts > 5
用户被锁定,怎么说?
答案 0 :(得分:1)
为什么不提取方法?让我们在一个返回true
或false
的简单方法中实现一个简单的循环,而不是计算尝试次数:
private static bool TryToLogin(int attempts = 5) {
for (int attempt = 0; attempt < attempts; ++attempt) {
Console.WriteLine("Enter username");
string username = Console.ReadLine();
Console.WriteLine("Enter password");
string password = Console.ReadLine();
if (username == "valid" && password == "valid)
return true;
}
return false;
}
现在我们要做的就是检查返回的值:
if (!TryToLogin(5)) {
//TODO: Lock user here
Console.WriteLine("Login failure");
}
else {
Console.WriteLine("Login successful");
}