“不兼容的操作数类型int和字符串”
我刚刚开始学习代码(特别是Java),我正在测试一个密码系统,当你输入密码时,它变成变量“password”,它会检查它是否等于password2,即实际密码。 这是代码:
import java.util.Scanner; public class LogicalOperators { public static void main(String args[]){ Scanner test = new Scanner(System.in); int age; int password; String password2; password2 = "Call of Duty"; System.out.println("Please enter your age:"); age = test.nextInt(); if (age >=18) { System.out.println("You are old enough."); System.out.println("Please enter the password:"); password = test.nextInt(); if (password == password2) { System.out.println("Welcome back!"); }else{ System.out.println("The password you typed was incorrect."); } }else{ System.out.println("You are too young."); } } }
我正在尝试检查嵌套的if语句是否输入了匹配密码2的密码,“使命召唤”; 但问题是它不适用于字符串。 这个问题的标题是出现的错误。 有人可以帮帮我吗?
比较字符串时,你应该使用equals而不是==所以使用
if(password.equals(password2){ do something }
我尝试给出一个提示,而不是提供完整的答案:
检查password
和password2
的数据类型。 他们为什么不同?
你必须做出一些改变。
第一个password
应该是String
类型,因为您希望在此处存储字符串并将其与另一个字符串进行比较。
接下来,就在age = test.nextInt();
,你应该做一个test.nextLine()
来在输入结束时使用换行符。 我们在阅读密码时不想阅读此内容。
接下来,你应该使用password = test.nextLine();
读取用户输入的密码。
最后,您应该使用以下方法进行比较: if (password.equals(password2))
。 ==
比较两个String对象是否具有相同的引用,即它们是否与Java已知的String对象相同。 你想要.equals()
,因为它会比较两个String对象的内容是否相等。 在这种情况下, password
和password2
引用两个可能具有相同内容的不同String对象。