Java 如何缩短多个if语句
我对编程相当陌生,不确定是否有办法缩短这段代码。基本上,无论为x输入什么值,都会确定“.”后面的数字Java 如何缩短多个if语句,java,android,android-studio,Java,Android,Android Studio,我对编程相当陌生,不确定是否有办法缩短这段代码。基本上,无论为x输入什么值,都会确定“.”后面的数字 String x = mSharedPreferences.getString("title", "3"); if (x.equals("1")){ df = new DecimalFormat("#.#"); } else if(x.equals("2")){ df = new DecimalFormat("#.##");
String x = mSharedPreferences.getString("title", "3");
if (x.equals("1")){
df = new DecimalFormat("#.#");
}
else if(x.equals("2")){
df = new DecimalFormat("#.##");
}
else if(x.equals("3")){
df = new DecimalFormat("#.###");
}
else if(x.equals("4")){
df = new DecimalFormat("#.####");
}
通过调用以下命令,可以完全消除所有if语句: 如果您希望使用类似于0.000的格式,也可以调用: 指定一个类似的模式。或者0.000实际上只是调用各种DecimalFormat的简写
使用switch语句:开关盒不会提供与if、else if、else实际上完全相同的功能。它提供了微妙不同的功能 我看到这个缩小的唯一方法是使用一个数组,然后做一个include检查,看看被检查的项目是否在可能的答案数组中 Psuedo代码为: 如果[1,2,3,4],则包括?x 终止
使用开关,大小写:x是一个字符串。开关在什么方面与本问题中使用的多路if不同?你确定你在谈论Java吗?@Pshemo好的,这是伪代码,所以不是Java@Andreas的评论不仅仅是关于代码示例:现在我再次阅读了这个答案,我更困惑了:include check布尔结果值在任何方面如何帮助解决问题中描述的问题?哇,甚至没有意识到DecimalFormat有这些类型的方法。谢谢你的信息!!!
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(Integer.parseInt(x));
int decimals = Integer.parseInt(x);
DecimalFormat df = new DecimalFormat("0");
df.setMinimumFractionDigits(decimals);
df.setMaximumFractionDigits(decimals);
switch (x) {
case "1": xx;
break;
case "2": xx;
break;
case "3": xx;
break;
case "4": xx;
break;
default:
break;
}