首页 > 解决方案 > 怎么用 解决方法: 3次锁定账号?

问题描述

我正在尝试创建一个使用方法来锁定/解锁帐户的程序。这是我的程序,但是当我尝试运行它时,它说我的方法中用于询问用户名和密码的参数不能为空。

我是一个初学者,刚刚学会了如何使用方法,所以如果有人可以帮助解释这个程序的错误是什么,那就太好了。

我还尝试创建一种在使用循环尝试三次后锁定帐户的方法,但我坚持这一点。请给点建议,谢谢!

//Lock account after n=3 using methods
//using Methods created

import java.util.Scanner;

public class Lock_Methods{
    public static void main(String [] args){

        String user_name = question();
        String pass_word = ask();

        int result = testing(user_name, pass_word);

        if (result == 0){
            System.out.println("Welcome");
        }
        else
            System.out.println("Locked");


    } //end of main


    //2. method for asking username
    public static String question(){
        Scanner input = new Scanner (System.in);

        System.out.println("Enter username: ");
        String username = input.nextLine();

        return username;
    }

    //3. method for asking password
    public static String ask(String password){
        Scanner input = new Scanner (System.in);

        System.out.println("Enter Password: ");
        password = input.nextLine();

        return password;

    }


    //4. method for testing whether username and password are true
    public static int testing(String inputname, String inputpw){
        int result = 0;
        String username = "edu";
        String password = "12345";

        if (!(username.equals(inputname)) || ! (password.equals(inputpw)))
            return 1;
        else
            return 0;

        return result; //return statment

    }



} //end of class

标签: javaloopsmethods

解决方案


String password从中删除public static String ask(String password)

当您调用 ask 方法时,String pass_word = ask();您没有传递任何参数,ask()但您的方法声明中有一个参数String password。由于您没有传递参数,因此它会给您带来该错误。

这就是你的ask()方法应该是这样的:

public static String ask(){
    Scanner input = new Scanner (System.in);

    System.out.println("Enter Password: ");
    password = input.nextLine();

    return password;
}

就这三个尝试而言,请尝试运行它。我在这里也做了上面提到的更改,所以只需运行它,看看它是否有效:

import java.util.Scanner;

public class Lock {
    public static void main(String [] args){

        String user_name = question();
        String pass_word = ask();

        int count = 0;

        while (count < 4) {
            int result = testing(user_name, pass_word);

            if (result == 0) {
                System.out.println("Welcome");
            }
            count++;
        }

        if (count > 3) {
            System.out.println("Locked");
        }

    } //end of main 

    //2. method for asking username
    public static String question(){
        Scanner input = new Scanner (System.in);

        System.out.println("Enter username: ");
        String username = input.nextLine();

        input.close();

        return username;
    }

    //3. method for asking password
    public static String ask(){
        Scanner input = new Scanner (System.in);

        System.out.println("Enter Password: ");
        String password = input.nextLine();

        input.close();

        return password;

    }


    //4. method for testing whether username and password are true
    public static int testing(String inputname, String inputpw){
        int result = 0;
        String username = "edu";
        String password = "12345";

        if (!(username.equals(inputname)) || ! (password.equals(inputpw)))
            result = 1;

        return result; //return statment

    }
}

推荐阅读