有没有办法缩短这段代码?也许是三元表达?

0 java ternary

    if (i <= 33) {
            variable = x;
        } else if (i > 33 && i <= 66) {
            variable = y;
        } else {
            variable = z;
        }
Run Code Online (Sandbox Code Playgroud)

有没有办法缩短这个?在这种情况下,我无法找到如何使用三元运算符.

ast*_*eri 9

如果你想使用一些疯狂的嵌套三元组:

int variable = i <= 33 ? x : i > 33 && i <= 66 ? y : z
Run Code Online (Sandbox Code Playgroud)

......但不要这样做.让您的代码可读和可维护!

另外,正如@EJP 在他的回答中提到的那样(你应该这样做),i > 33条件是多余的,所以你可以将其缩短为:

int variable = i <= 33 ? x : i <= 66 ? y : z
Run Code Online (Sandbox Code Playgroud)

我只是直接从你的if/else-s中抓取了这些条款.