2014-02-25 139 views
0

这是我的主要方法的第一部分,我提示用户输入尽可能多的短语,并将输入保存在ArrayList中。我编写这个程序时,如果用户放置'q',程序会停止询问更多输入,但由于某种原因,当我运行这个时,即使输入q,它也不会退出循环。它只是不断要求更多的投入。我假设我在while循环中犯了一个错误,但我不完全确定是什么。我无法摆脱这个while循环

我真的对Java,所以我可能已经取得了明显的错误,但我不知道..

public static void main(String [] args) 
    { 
    //vars 
    String userInput; 
    int quitter = 0; 

    //arraylist 
    ArrayList<RecursivePalindrome> a = new ArrayList<RecursivePalindrome>(); 

    //scanner 
    Scanner in = new Scanner(System.in); 

    //user input 
    System.out.println("\t Palindrome Checker"); 
    System.out.print("Input phrase one at a time (press 'q' to quit): "); 
    while(quitter == 0) 
    { 

     userInput = in.next(); 

     if(userInput == "q") 
     { 
      quitter++; 
     } 
     a.add(new RecursivePalindrome(userInput)); 
     System.out.print("Input phrase one at a time (press 'q' to quit): "); 
    } 
    System.out.println(); 
+1

'if(userInput ==“q”)'看起来不正确。 – Pshemo

回答

4

字符串比较

使用.equals

if(userInput.equals("q")) 
     { 
      quitter++; 
     } 
2

将该字符串与equals()进行比较并放入break它将退出while循环

if(userInput.equals("q")) 
     { 
      quitter++; 
      break; 
     }