name = scanner.next();
if (name == "abc" && pass == 123) { // 錯誤:== 比較參考位址
System.out.println("登陸成功");
}
== 比較的是**物件參考位址**,而非字串內容。scanner.next() 回傳新建立的 String 物件,與字面常量 "abc" 位址不同。
if ("abc".equals(name) && pass == 123) { // 推薦:常量在前防 NPE
System.out.println("登陸成功");
}
// 或
if (name.equals("abc") && pass == 123) { // 需確保 name != null
}
pass == 123 是基本型別 int 比較數值,**正確**。equals() 或 Objects.equals()。