import java.util.Scanner;
public class OrigClass {
public static void main (String[] args){
Scanner ScanObj = new Scanner(System.in);
System.out.println("Set Password: ");
String SetPass = ScanObj.nextLine();
System.out.println("Guess Password: ");
String GuessPass = ScanObj.nextLine();
while (GuessPass != SetPass){
System.out.println("Incorrect. Try Again: ");
GuessPass = ScanObj.nextLine(); }}}
因此,您可以看到我正在尝试制作一个非常简单的程序,让用户输入密码然后重新输入密码。我有点困惑为什么这不起作用。我已经尝试了所有我能想到的东西,并在这里阅读了其他类似的问题,但找不到任何东西......
很抱歉,如果这有点基础,但令我烦恼的是,我无法让它工作:(
答案 0 :(得分:3)
您应该将字符串与String.equals
因此您的代码应如下所示:
while (!GuessPass.equals(SetPass)){
并且在评论中提到我会更改变量的名称以匹配Java标准(camelCase用于局部变量和方法),所以总结一下:
while (!guessPass.equals(setPass)){
答案 1 :(得分:2)
比较字符串时,请使用String.equals(“some string”)。
while(!guessPass.equals(setPass)){
//do something
}
我包含了对变量名称的更改。变量标准是第一个单词小写,所有后续单词大写(第一个字母)。这将有助于您和您的同行理解您的代码。希望这会有所帮助。
答案 2 :(得分:0)
以下是您的修复方法。比较字符串时需要使用dot相等。
public static void main(String[] args) {
Scanner ScanObj = new Scanner(System.in);
System.out.println("Set Password: ");
String SetPass = ScanObj.nextLine();
System.out.println("Guess Password: ");
String GuessPass = ScanObj.nextLine();
// the fix
while (!GuessPass.equals(SetPass)){
System.out.println("Incorrect. Try Again: ");
GuessPass = ScanObj.nextLine(); }}
}