我只是乱搞代码,看看我能做什么和不能做什么,所以我正在创建一个非常简单的登录程序,由于某种原因,它似乎找不到其中之一字符串。代码如下:
import java.util.Scanner;
public class Login {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Username: ");
String user = input.next();
System.out.print('\f');
while (true) {
System.out.print("Pass: ");
String pass = input.next();
System.out.print('\f');
System.out.print("Password Again: ");
String pass2 = input.next();
System.out.print('\f');
if (pass.equals(pass2)) {
System.out.println("*Passwords Match*");
System.out.println("");
break;
} else if (!pass.equals(pass2)) {
System.out.println("*Passwords don't match, please try again*");
System.out.println("");
}
}
System.out.println("User: " + user);
System.out.println("Pass: " + pass);
}
}
找不到字符串pass。我不知道它是否是保留字,但是当我尝试将字符串更改为密码而不是传递时,它仍然找不到它。任何帮助都会很好
最佳答案
您在可以使用的地方之外使用了pass
。
如果您在 main 方法中声明它,您的代码将起作用。
基本上,在 while 循环范围之外使用的任何内容都必须在某处初始化。如前所述,您不必担心 pass2
在其他地方声明,因为它的主要功能纯粹位于循环范围内
import java.util.Scanner;
public class Login {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String pass,user;
System.out.print("Username: ");
user = input.next();
System.out.print('\f');
while (true) {
System.out.print("Pass: ");
pass = input.next();
System.out.print('\f');
System.out.print("Password Again: ");
String pass2 = input.next();
System.out.print('\f');
if (pass.equals(pass2)) {
System.out.println("*Passwords Match*");
System.out.println("");
break;
} else if (!pass.equals(pass2)) {
System.out.println("*Passwords don't match, please try again*");
System.out.println("");
}
}
System.out.println("User: " + user);
System.out.println("Pass: " + pass);
}
}
关于java - 找不到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32856446/