Noob Java问题:为什么Do While循环不会接受用户输入?当我使用不同的变体(例如int作为答案)时,它可以工作。但是当我查找一个字符串时,它永远不会接受字符串并转义循环。
这有效:
int value = 0;
do {
System.out.println("Enter a number: ");
value = scanner.nextInt();
}
while(value != 5);
System.out.println("Do while loop has ended.");
这不起作用:
String pass;
String word = "word";
do {
System.out.println("Enter password: ");
pass = scanner.nextLine();
}
while(pass != word);
System.out.println("Password accepted.");
由于
答案 0 :(得分:2)
改变这个:
while(pass != word);
到此:
while(!pass.equals(word));
您在使用!=
时比较了引用,而不是字符串的实际内容。由于它们没有指向相同的String
,因此您的循环将始终在第一次运行时退出。
答案 1 :(得分:0)
" =="比较内存中的地址,因此如果输入相同的单词,您存储的引用将指向不同的对象。