java - 怎么用 解决方法: 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
解决方案
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
}
}
推荐阅读
- c - 获取整数的负号并将其存储为 char 的最佳方法是什么?
- angularjs - 在sql server Angularjs asp.netmvc中数据更新之前显示记录的搜索方法
- python - 对多个数据帧执行类似的分析
- jboss - 部署自定义 SPI (FreeMarkerLoginFormsProvider) 时出现问题
- matlab-figure - 如何绘制一些数据的灰度及其置信区间
- c - 在对 execvp 执行无效命令后,命令和结果打印了两次
- python - 将实例字段转换为属性
- azure - Azure RM 模板。有条件地部署复制资源
- version - 如何将 Visual Studio 代码更新到最新版本
- sql - PLS-00103:在预期以下情况之一时遇到符号“CREATE”: