【问题标题】:Java: not exiting while loop? [duplicate]Java:不退出while循环? [复制]
【发布时间】:2013-06-15 02:35:52
【问题描述】:
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();  }}}

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

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

【问题讨论】:

  • 使用String#equals比较Strings
  • 当然还要遵循 Java 命名约定。变量名应以小写字母开头。

标签: java loops while-loop break


【解决方案1】:

你应该将字符串与String.equals进行比较

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

while (!GuessPass.equals(SetPass)){

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

while (!guessPass.equals(setPass)){

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 2015-08-15
        • 1970-01-01
        • 2015-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多