Nic*_*bey 48 java return case break switch-statement
鉴于这种方法,这是否代表了一些令人震惊的风格或语义失误:
private double translateSlider(int sliderVal) {
    switch (sliderVal) {
        case 0:
            return 1.0;
        case 1:
            return .9;
        case 2:
            return .8;
        case 3:
            return .7;
        case 4:
            return .6;
        default:
            return 1.0;
    }
}  
这显然不符合这里的Java教程.
然而,它清晰,简洁,到目前为止已经完全符合我的需要.是否有令人信服的实用理由创建局部变量,在每种情况下为其赋值,为每个案例添加一个中断并在方法结束时返回值?
roc*_*boy 59
将值赋给局部变量然后在末尾返回它被认为是一种很好的做法.具有多个出口的方法难以调试并且难以阅读.
那就是说,这是这个范例留下的唯一加分点.它起源于只有低级程序语言.而那时它更有意义.
在讨论这个主题时,你必须检查一下.这是一个有趣的读物.
小智 15
如果是Java 14+,你可以使用这样的switch函数表达式:
return switch(region) {
    case "us-east-1" -> Region.US_EAST_1;
    default -> Region.US_EAST_1;
};
从人工智能角度来看,你的代码很好.从静态代码分析工具视图中,有多个返回,这使得调试更加困难.例如,你不能在返回之前立即设置一个断点.
此外,您不会在专业应用程序中硬编码4个滑块步骤.使用max-min等计算值,或者在数组中查找它们:
public static final double[] SLIDER_VALS = {1.0, 0.9, 0.8, 0.7, 0.6};
public static final double SLIDER_DEFAULT = 1.0;
private double translateSlider(int sliderval) {
  double ret = SLIDER_DEFAULT;
  if(sliderval >= 0 && sliderval < SLIDER_VALS.length) {
      ret = SLIDER_VALS[sliderval];
  } 
  return ret;
}
| 归档时间: | 
 | 
| 查看次数: | 84364 次 | 
| 最近记录: |