这是一个运行Conways Game of Life模拟的程序。 主要方法是:
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语句并返回循环的开头。
据我所知,它与语句的实际内容无关,但它可能与布尔表达式有关。
答案 0 :(得分:3)
您应该使用.equals()
来比较<
而不是[someFaceThingy doSomethingHere:@"/path/user/bobdobbs" completionHandler:^(NSDictionary *results, NSError *error ){
if (!results) { .... process error and return ....}
... process results ...
dispatch_async(dispatch_get_main_queue(), ^{
... apply results to table view ...
});
}];
... don't process anything here because there'll be nothing to process ...
Strings
用于检查对象引用,==
检查==
值
使用:.equals()
你应该是金色的
已经非常彻底地解释了here。
答案 1 :(得分:0)
字符串也可以与==进行比较,只要它们是内化的。用双引号初始化的字符串已经内化。
所以,在你的情况下,你可以做到这一点。
answer = input.nextLine().intern();
答案 2 :(得分:0)
我建议这样做:
if ("new".equals(answer)) {
cellState = newCells(cellState);
} else if ("stop".equals(answer)) {
break;
} else {
System.out.println("Not an option yet");
}