可能重复:
如何比较 Java 中的字符串?
我写了一个程序,它会“掷骰子”并告诉你需要多少转才能获得 yahtzee。这可行,但是当它要求您再次访问时会出现问题。它会一直给我一个“无效的输入”,而实际上我输入的东西应该退出循环。这是我的代码,循环从第 24-34 行开始,但我会把它全部放好,以防万一早先出现问题。
import java.util.Scanner;
import java.util.Random;
public class Yahtzee {
public static void main(String[] args){
int d[] = {0,0,0,0,0};
int x = 0;
Scanner s = new Scanner(System.in);
Random r = new Random();
while (1!=0){
d[0] = r.nextInt(6);
d[1] = r.nextInt(6);
d[2] = r.nextInt(6);
d[3] = r.nextInt(6);
d[4] = r.nextInt(6);
x+=1;
if (d[0]==d[1] && d[0]==d[2] && d[0]==d[3] && d[0]==d[4]) {
System.out.println("You got yahtzee, every dice showed " + Integer.toString(d[0]));
System.out.println("It only took " + Integer.toString(x) + " turns");
while (1!=3) {
System.out.print("Go again? y/n: ");
String ans = s.nextLine();
if (ans.toLowerCase()=="n"){
System.exit(0);
} else if (ans.toLowerCase()=="y") {
break;
} else {
System.out.println("Invalid input!");
}
}
}
}
}
}
老实说,我无法弄清楚这一点,尽管它可能非常明显。问题出在哪里?