我正在为一所学校的项目工作,我对我所做的IF声明有点小问题。
它使用扫描仪输入并查找该人输入内容的答案。 但它似乎并没有起作用。
public static void remove(){
System.out.println("Would you like to remove a student? (y/n)");
input = new Scanner(System.in);
String answer=input.nextLine();
if(answer == "y"){
Scanner idInput = input;
System.out.println("Please enter a student ID");
for(int i=idInput.nextInt();i<=studentlist.size();i++){
if(studentlist.get(i).getId().equals(i)){
studentlist.remove(i);
return;
}
}
}
return;
}
当我进入&#39; y&#39; (没有引号)进入控制台它只是跳过我的if逻辑并返回main方法。
Would you like to remove a student? (y/n)
y
Student ID Recent Grades Name E-Mail Age
1 [88, 79, 59] John Smith John1989@gmail.com 0
2 [91, 72, 85] Suzan Erickson Erickson_1990@gmailcom 0
3 [85, 84, 87] Jack Napoli The_lawyer99yahoo.com 0
4 [91, 98, 82] Erin Black Erin.black@comcast.net 0
5 [79, 88, 91] Joshua Selvidge jselvidge@wgu.edu 0
答案 0 :(得分:0)
问题不在于IF语句,而在于您使用的比较运算符。对于String,您需要使用equals关键字而不是==
这样的事情:
if("y".equals(answer)){
...
}
希望这有帮助。