我刚开始学习代码(特别是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的密码,“使命召唤”;但问题是它不适用于字符串。这个问题的标题是出现的错误。有人可以帮助我吗?
答案 0 :(得分:9)
我尝试提示而不是提供完整的答案:
检查password
和password2
的数据类型。他们为什么不同?
答案 1 :(得分:3)
比较字符串时,应使用equals而不是== 所以使用
if(password.equals(password2){
do something
}
答案 2 :(得分:1)
你必须做出一些改变。
首先password
应该是String
类型,因为您要在此处存储字符串并将其与另一个字符串进行比较。
接下来,在age = test.nextInt();
之后,您应该在输入结束时使用test.nextLine()
来使用换行符。我们在阅读密码时不想阅读此内容。
接下来,您应该使用password = test.nextLine();
来读取用户输入的密码。
最后,您应该使用以下代码进行比较:if (password.equals(password2))
。 ==
比较两个String对象是否具有相同的引用,即它们是否与Java已知的String对象相同。你想在这里.equals()
因为它会比较两个String对象的内容是否相等。在这种情况下,password
和password2
引用两个可能具有相同内容的不同String对象。