JAVA在IF语句中评估多个OR条件

MAX*_*GEN -2 java if-statement

我如何正确编码此声明?有没有更好的办法?

byte[] buf = rtm.getMessageData();
if (buf[0] == 'A'|| 'B' || 'C' || 'D' || 'E' || 'F')
Run Code Online (Sandbox Code Playgroud)

rua*_*akh 6

您在正确的Java中的代码的确切类似将是:

if (buf[0] == 'A'|| buf[0] == 'B' || buf[0] == 'C'
        || buf[0] == 'D' || buf[0] == 'E' || buf[0] == 'F')
Run Code Online (Sandbox Code Playgroud)

但正如你所推测的那样,有更好的方法.

一种选择:

if (buf[0] >= 'A' && buf[0] <= 'F') {
    ...
} else {
    ...
}
Run Code Online (Sandbox Code Playgroud)

另外一个选项:

switch (buf[0]) {
    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
        ...
        break;
    default:
        ...
}
Run Code Online (Sandbox Code Playgroud)