我在下面代码中的哨兵将无法工作。输入'zzz'时它一直循环而不是退出。有任何想法吗?请注意,我希望在此练习中使用控制台类而不是扫描器类。
class Username{
public static void main(String[] args){
String name, surname, code, username ;
boolean sentinel = true ;
do
{
System.out.print("enter name: ");
name = Console.readString();
System.out.print("enter surname: ");
surname = Console.readString();
System.out.print("enter code: ");
code = Console.readString();
username = surname + name.charAt(0) + code ;
System.out.print("your username: " + username);
System.out.println();
System.out.print("enter zzz to stop or hit eneter to continue: ");
String ans = Console.readString();
if (ans == "zzz")
sentinel = false ;
}
while (sentinel);
}//end main
}//end class
最佳答案
使用
if (ans.equals("zzz"))
代替
if (ans == "zzz")
在 Java 中,只有当两个字符串是同一对象时,它们才“相等”……您必须使用 equals() 方法来比较实际的字符串内容。
关于java - 在哨兵不工作时做(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067749/