新手问题,但我有以下代码:
import java.util.*; import java.io.*; public class Welcome1 { // main method begins execution of Java application public static void main( String[] args ) { String confirm = "y"; while(confirm=="y") { System.out.println( "Welcome to Java Programming!" ); System.out.println( "Print Again? (y/n)" ); Scanner input = new Scanner(System.in); confirm = input.nextLine(); } } }
当用户输入“ y”时,我只需要简单地再次打印欢迎消息即可。但这不起作用。有任何想法吗?
在Java中,使用来比较原始类型(int,long,boolean等)的相等性==,而使用equals()方法来比较对象类型(String等)的相等性。如果使用比较两个Object类型==,则要检查 身份 ,而不是相等性-也就是说,您要验证两个对象在内存中是否共享完全相同的引用(因此是相同的对象);通常,您只需要验证它们的 值 是否相同,并为此使用即可equals()。
==
equals()
作为一种好的编程习惯,最好像这样比较字符串,翻转字符串的顺序:
while ("y".equals(confirm)) {
这样,您可以确保比较有效(即使confirm为空)也可以避免潜在的NullPointerException。
confirm
NullPointerException