Java逻辑运算符

Int*_*Pig -7 java if-statement

很简单,愿意

if(clickedButton == button0 || button1 || button2 || button3 || button4 || button5 || button6 || button7 || button8 || button9)
Run Code Online (Sandbox Code Playgroud)

返回true如果我点击了button0,button1或者button2等?另外,我不明白为什么 if(clickedButton == (button0 || button1 || button2)......等也不起作用.是同样的事情(在JButton上检查true或false)还是完全不同的东西.大多数情况下,我只是乱用括号,所以当这个想法打击我时,我尝试了,我不明白为什么它不起作用.

Doo*_*nob 7

不,这将是一个编译错误,因为它正在解析为

if ((clickedButton == button0) || (button1) || (button2) ...
Run Code Online (Sandbox Code Playgroud)

和按钮不是布尔值.

你必须这样做:

if (clickedButton == button0 || clickedButton == button1 ...
Run Code Online (Sandbox Code Playgroud)

但是数组会更清晰,而不是有九个单独的按钮变量.然后你可以这样做:

if (Arrays.asList(buttons).contains(clickedButton)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您的按钮存储在ArrayList(或任何List)中,它就是

if (buttons.contains(clickedButton)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)