我需要在java中使用switch语句作为范围值

pra*_*ank -3 java

我需要为我可以使用的范围值实现switch语句,否则我认为switch的性能会更好.

我有一个要求,如果变量的值在1-150之间,我将处理我的逻辑.如果变量的值在150-300之间,那么一些其他逻辑和if范围是300-450然后是一些不同的逻辑,依此类推.

所以我在这种情况下如何使用开关,因为我通常使用具有固定值的开关.提前致谢.

Pet*_*rey 8

我建议你使用一个公式

switch (value / 150) {
   case 0: // 0 - 149
          break;
   case 1: // 150 - 299
          break;
   case 2: // 300 - 449
          break;
   default: // otherwise.
}
Run Code Online (Sandbox Code Playgroud)

如果你使用(value-1)/150你得到1-150,151-300,301-450等

编辑:由于整数除法的性质,case 0也将在switch((value-1)/ 150){...}中接受-148-0.为了避免这种情况,可以使用if/else语句以及条件运算符.

  • @AmberBeriwal欢呼,如果你除以50,你可以有不同大小的范围,没有太多的复杂性. (2认同)