0

这是我的 if 语句...按钮显示如下:

在此处输入代码
这是我的 if 语句

        if((buttons[3].getName()=="x" && buttons[6].getName()=="x" &&
        buttons[9].getText()=="x")||(buttons[2].getName()=="x" &&
        buttons[5].getName()=="x" && buttons[8].getName()=="x")||
        ((buttons[1].getName()=="x") && (buttons[4].getName()=="x") &&
        (buttons[7].getName()=="x"))){
            JOptionPane.showMessageDialog(null,"X Wins");
        }

因此,如果我选择第 1、第 4 和第 7 个按钮(最左边的 3 个按钮),为什么它不显示“X Wins”?
作为旁注,是的,按钮应该有名称“x”

4

4 回答 4

3
buttons[3].getName()=="x" 

字符串比较应该使用equals()而不是==

它应该是buttons[3].getName().equals("x")

于 2012-11-08T04:51:39.363 回答
2

- Objects在 java 中使用"equals". "=="用于比较原始值,也用于检查 2 个或多个对象引用变量是否指向同一对象heap

-所以在javaString 中作为一个对象应该使用.equals()和使用进行比较.equalsIgnoreCase()

例子:

buttons[1].getName().equals("x");

于 2012-11-08T04:58:44.007 回答
1

字符串之间的比较使用equals()。

button[1].getName().equals("x");

另外,您确保左边的 3 是 1、4 和 7 而不是 0、3 和 6,对吗?

于 2012-11-08T04:54:09.210 回答
1

重新检查您的 if 条件。它太长了。到处混用 AND 和 OR。它可能会产生意想不到的结果。

也使用 equals() 或 equalsIgnoreCase()

于 2012-11-08T06:22:33.907 回答