我写了一个简单的程序,提示用户输入一个句子,单词或数字,然后打印输入是艺术。我把程序放在一个无限循环上,以便重复提示。但是,现在我试图通过说if (input == "quit") break;
添加一种退出方式,但它似乎没有起作用。它只是继续无限循环。这是完整的代码:
import java.util.Scanner;
public class Art
{
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
String a;
for ( ; ; )
{
System.out.println("Please enter something: ");
a = input.nextLine();
if (a == "quit") break;
System.out.print("\n");
System.out.println(a + " is art.");
System.out.print("\n");
}
}
}
任何帮助都很可爱,谢谢!
答案 0 :(得分:2)
使用input.equals("quit")
。
==
用于检查两个对象是否完全相同 - 内存中的相同内容 - 键入的单词和常量字符串"quit"
不 。创建了"quit"
的两个实例:一个由用户键入,一个常量在程序中。
equals()
方法用于比较两个对象是否相等,无论以何种方式为它们定义相等性。对于字符串,这意味着具有相同的文本。
==
和equals()
之间的差异在Java中是非常基础的,所以你应该重温它。这是a good SO post on the topic。一旦开始创建自己的类,您可能会为它们实现equals()
方法。因此,请务必查看equals()
/ hashCode()
contract。
答案 1 :(得分:1)
看起来a == "quit"
就是问题所在。使用equals()
if("quit".equals(a)) {
}