3
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();  }}}

如您所见,我正在尝试制作一个非常简单的程序,让用户输入密码然后重新输入。我有点困惑为什么这不起作用。我已经尝试了我能想到的一切,并在这里阅读了其他类似的问题,但找不到任何东西......

对不起,如果这有点基本,但我无法让它工作让我很恼火:(

4

3 回答 3

3

您应该将字符串与String.equals

所以你的代码应该是这样的:

while (!GuessPass.equals(SetPass)){

并且正如评论中提到的那样,我会更改变量的名称以匹配 Java 标准(局部变量和方法的驼峰式命名法),所以总结一下:

while (!guessPass.equals(setPass)){
于 2013-06-18T18:38:02.750 回答
2

比较字符串时使用 String.equals("some string")。

while(!guessPass.equals(setPass)){
//do something
}

我包括对您的变量名称的更改。变量的标准是第一个单词小写,所有后续单词大写(第一个字母)。这将帮助您和您的同事理解您的代码。希望这可以帮助。

于 2013-06-18T18:38:18.523 回答
0

这是为您解决的问题。比较字符串时需要使用点相等。

        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();  }}
}
于 2013-06-18T18:41:36.720 回答