我尝试运行的循环将初始化,但在第一次循环后不会继续运行。因为我知道问题在哪里我拿出了大部分代码来修复循环。在进行第二次选择后,循环将不会运行。谢谢你的帮助。
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();
}
}
答案 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"
而忽略大小写。