以较短的方式编写Java长的If / Else循环

时间:2019-10-01 21:08:17

标签: java if-statement

大家好,我目前有一份刚完成的作业,但是他们是我不喜欢的一个细节。有没有一种方法可以缩短if else循环

目前我已经写过

    if (x >=300) {
        set y = 1;
    }
    else if(x >=200) {
        set y = 2;
    }
    else if (x >=150) {
        set y = 3;
    }
    else if (x>=100) {
        set y = 4;
    }
    else if (x >=50) {
        set y = 5;
    }
    else if (x >=25) {
        set y = 6;
    }

也许我只是在做书,谢谢您

2 个答案:

答案 0 :(得分:0)

可以将其缩短为

y = x>=300 ? 1 : x>=200 ? 2 : x>=150 ? 3 : x>=100 ? 4 : x>=50 ? 5 : 6;

但是虽然它可能更紧凑,但是从主观上讲它的可读性也较低。有关其他信息,请参见here

答案 1 :(得分:0)

这看起来像是您可以使用switch语句的地方。但是,switch语句旨在处理已知值而不是不等式。如果您不喜欢if-else语句链的外观,则可以在一个内联表达式(三元运算符)中完成所有操作,但这很难阅读。

除非有充分的理由进行更改,否则我会说按原样保留代码。如果每个语句之后只包含一个代码语句,则可以消除大括号{},使代码看起来更简洁:

    if (x >= 300) set y = 1;
    else if (x >= 200) set y = 2;
    else if (x >= 150) set y = 3;
    else if (x >= 100) set y = 4;
    else if (x >= 50) set y = 5;
    else if (x >= 25) set y = 6;