虽然循环启动但不循环java

时间:2016-07-07 07:35:49

标签: java while-loop

我尝试运行的循环将初始化,但在第一次循环后不会继续运行。因为我知道问题在哪里我拿出了大部分代码来修复循环。在进行第二次选择后,循环将不会运行。谢谢你的帮助。

public static void main(String[] args)
{
  String number; // enter number        
  int stringLength = 0;    
  String selection = "y" ;
  // Create a Scanner object to read input.
  Scanner keyboard = new Scanner(System.in);

 // PrintWriter outputFile = new PrintWriter("outDataFile.txt");
 // outputFile.close();

  while (selection == "y")
  {

     // Get the user's number.
     System.out.print("Write your number ");
     number = keyboard.nextLine();


     System.out.print("y/Y to continue, any else to exit");
     selection = keyboard.nextLine();


  }

}  

2 个答案:

答案 0 :(得分:2)

修改你的条件:

while ("y".equalsIgnoreCase(selection.trim()))

最好将String与equals进行比较,以便比较实际的单词而不是对象标识。修剪将删除由错误添加的任何空白

此外,最好与左侧的常量"y"进行比较,以避免NullPointerException

另外,正如在另一个答案中解释的那样,equalsIgnoreCase()也很重要。

答案 1 :(得分:1)

对于字符串,您应该使用equals而不是==,因为==仅比较引用而不是对象内的数据,因此:

while (selection.equalsIgnoreCase("y"))

因为您的邮件中有"y/Y to continue, any else to exit"而忽略大小写。