Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将这个if-else-if语句转换成一个简短的形式? 公共静态双eMED(int emo){ 双结果=0; 如果(emo>=40&&emo60&&emo_Java - Fatal编程技术网

如何在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;