如何在Java中将这个if-else-if语句转换成一个简短的形式? 公共静态双eMED(int emo){ 双结果=0; 如果(emo>=40&&emo60&&emo
用例是短的 示例:如何在Java中将这个if-else-if语句转换成一个简短的形式? 公共静态双eMED(int emo){ 双结果=0; 如果(emo>=40&&emo60&&emo,java,Java,用例是短的 示例: public static double eMED(int emo) { double result = 0; if (emo >= 40 && emo < 60) { result = upFunc(emo, 40, 60); } else if (emo > 60 && emo <= 80) { result = downFunc(emo, 60, 80);
public static double eMED(int emo) {
double result = 0;
if (emo >= 40 && emo < 60) {
result = upFunc(emo, 40, 60);
} else if (emo > 60 && emo <= 80) {
result = downFunc(emo, 60, 80);
} else if (emo == 60) {
result = 1;
}
return result;
}
您的代码看起来已经很短了。您无法将其缩短。您可以使用三元运算符,但代码变得几乎不可读
public class SwitchDemo {
public static void main(String[] args) {
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
}
}
返回emo==60?1
:emo>=40&&emo<60?upFunc(emo,40,60)
:emo>60&&emo您可以使用直接返回而不是使用变量,但是您可以使用更短的值,因为您有4个possbI始终喜欢在函数末尾使用return。它更易于阅读。为什么您希望它更短?对我来说,这似乎是一个完美的长度。请解释开关盒如何适用于此问题?case:如果您想同时使用,请使用MPA仅为一个数字或一个案例,但如果您想对多个案例进行比较,则不能比您使用的内容短。@GoldenCode对于这个特定问题,switch/case几乎毫无用处。您需要列出41个单独的案例,以及默认值。
return emo == 60 ? 1
: emo >= 40 && emo < 60 ? upFunc(emo, 40, 60)
: emo > 60 && emo <= 80 ? downFunc(emo, 60, 80)
: 0;