Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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 多个else if语句修复_Java - Fatal编程技术网

Java 多个else if语句修复

Java 多个else if语句修复,java,Java,我有一个使用简单随机系统的随机名称生成器,基本上它得到一个数字1-10,然后有一堆关于数字的is语句 if(f == 1) { fst = "Daws"; } else if(f == 2) { fst = "Rom"; } else if(f == 3) { fst = "Trout"; } else if(f == 4) { fst = "B

我有一个使用简单随机系统的随机名称生成器,基本上它得到一个数字1-10,然后有一堆关于数字的is语句

    if(f == 1)
    {
        fst = "Daws";
    }
    else if(f == 2)
    {
        fst = "Rom";
    }
    else if(f == 3)
    {
        fst = "Trout";
    }
    else if(f == 4)
    {
        fst = "Bally";
    }
    else if(f == 5)
    {
        fst = "Kuu";
    }
    else if(f == 6)
    {
        fst = "Invery";
    }
    else if(f == 7)
    {
        fst = "Dragon";
    }
    else if(f == 8)
    {
        fst = "Bam";
    }
    else if(f == 9)
    {
        fst = "Laen";
    }
    else if(f == 10)
    {
        fst = "Glen";
    }

有没有办法让我浓缩一下?有什么提示吗?

您可以使用
开关
语句

switch (f) {
case 1: fst = "Daws"; break;
case 2: fst = "Rom"; break;
...
}
或者,更好的方法是创建查找数组:

String[] strs = { "Daws", "Rom", ... };
并按如下方式使用:

fst = strs[f-1];  // -1 since your random number starts from 1.
你能行

// a condensed way of doing FSTS = { "Daws", "Rom", ... };
static final String[] FSTS = 
             "Daws,Rom,Trout,Bally,Kuu,Invery,Dragon,Bam,Laen,Glen".split(",");

// later
fst = FSTS[f-1];

您可以使用switch语句,但为什么不将值放入数组中,并获取具有随机索引的项呢?请使用switch。它更快,可读性更强。你还教了我关于.split()的知识,这是我从未意识到的。为此,我给你一个令人惊叹的++;