【发布时间】:2016-02-03 00:16:05
【问题描述】:
我正在编写一个程序,将单位(例如 oz 和 lb)转换为新的测量单位(g 和 kg)。我打算让用户输入他们想要转换的单位和原始单位的值。我还设置了常量来转换选定的单位。我遇到的问题是使用 switch 语句来确定我应该使用什么转换(oz ---> g、oz ---> 等)。
代码如下:
System.out.print("Convert from: ");
String origMeasure = input.nextLine();
System.out.print("Convert to: ");
String newMeasure = input.nextLine();
System.out.print("Value: ");
double value = input.nextDouble();
double newValue = 0;
final double OZ_TO_G = 28.3;
final double OZ_TO_KG = 0.028;
final double LB_TO_G = 453.6;
final double LB_TO_KG = 0.045;
final double IN_TO_MM = 25.4;
final double IN_TO_CM = 2.54;
final double IN_TO_M = 0.0254;
final double FT_TO_MM = 304.8;
final double FT_TO_CM = 30.48;
final double FT_TO_M = 0.3048;
final String OZ = " oz";
final String LB = " lb";
final String IN = " in";
final String FT = " ft";
final String G = " g";
final String KG = " kg";
final String MM = " mm";
final String CM = " cm";
final String M = " m";
switch(origMeasure){
case(OZ):
newValue = (value * OZ_TO_G);
break;
}
System.out.println(value + origMeasure + "=" + newValue + newMeasure);
}
}
【问题讨论】:
-
实际问题是什么?请描述清楚
-
我在使用 switch 语句来确定将旧测量值转换为新测量值的转换(常量)时遇到问题。
-
继续你的开始
-
听起来像是用多态替换条件。
标签: java eclipse unit-testing switch-statement