java为什么字符串密码的输入在另一个类中使用时返回null
循环do-while
是一个循环,应该至少运行一次,然后记录来自该{ }
内部的所有代码输出。do while for me的情况不是有效的输入,不会运行实际的输入,并且会输出NULL
import java.util.Scanner;
import static java.lang.System.*;
class PasswordCheck
{
public String password;
public String ag;
public void PasswordCheck()
{
do {
password = ag;
if(password == "1234") {
System.out.println("success");
}else {
System.out.println("FAIL" + password);
PasswordCheck d = new PasswordCheck();
d.check();
}
} while (password != "1234");
if(password == "1234") {
System.out.println("success");
}
}
public void check()
{
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter the password:");
String ag = keyboard.next();
System.out.println(ag);
PasswordCheck as = new PasswordCheck();
as.PasswordCheck();
}
}
public class PassRunner
{
public static void main( String args[] )
{
PasswordCheck test = new PasswordCheck();
test.check();
}
}
我已经尝试过重新设置类的类型,并设置password=ag
输出:
输入密码:1234
1234
失效无效
输入密码:1234
1234
失效无效
输入密码:
# 1 楼答案
您正在将
ag
分配给password
。它们都未初始化,因此具有默认值null
。在if语句之前,应该用一些值初始化密码这是因为在上面,块没有使用ag作为实例变量,而是将其声明为局部变量。改变
这个,对这个,
`