如果不满足条件,则重复动作特定次数

时间:2015-03-06 21:34:19

标签: c# for-loop console

我正在尝试创建一个具有密码访问权限的控制台应用程序,设法编写代码以询问密码,但我希望它重复询问密码(如果它是错误的)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();
        }
    }

1 个答案:

答案 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次。