Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串比较不需要';不要在while循环中工作_Java_Loops_Input_While Loop_Do While - Fatal编程技术网

Java 字符串比较不需要';不要在while循环中工作

Java 字符串比较不需要';不要在while循环中工作,java,loops,input,while-loop,do-while,Java,Loops,Input,While Loop,Do While,NoobJava问题:为什么这个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 end

NoobJava问题:为什么这个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.");
谢谢更改此项:

while(pass != word);
为此:

while(!pass.equals(word));

使用
时,您正在比较引用=,而不是字符串的实际内容。由于它们没有指向相同的
字符串,因此循环将始终在第一次运行时退出。

“==”比较内存中的地址,因此如果输入相同的单词,则存储的引用将指向不同的对象。

应使用String.equals()方法。你比较的方式是它们的内存位置,而不是文字字符串。啊,我没看到。谢谢