java While循环跳过if语句?
这是一个运行康威生命模拟游戏的程序。 主要方法如下:
public static void main(String Args[]) {
int x = 0;
int y = 0;
boolean cellState[][] = new boolean[][]{};
boolean newCellState[][] = new boolean[][]{};
String answer;
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("\n Type anything for next generation, 'new' for new grid, or 'stop' to end>> ");
answer = input.nextLine();
if (answer == "new") {
cellState = newCells(cellState);
} else if (answer == "stop") {
break;
} else {
System.out.println("Not an option yet");
}
}
}
无论输入什么答案,它都会跳过if语句,返回循环的开头
据我所知,它与语句的实际内容无关,但可能与布尔表达式有关
# 1 楼答案
应该使用^{} 来比较
Strings
和==
==
用于检查对象引用,而.equals()
检查String
值使用:
if(answer.equals("new"))
你应该是金色的它已经被解释得非常透彻