如果语句修复,则多个其他

时间:2014-12-23 09:39:33

标签: java

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

    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";
    }

有没有办法可以浓缩这个?任何提示?

2 个答案:

答案 0 :(得分:8)

您可以使用switch声明。

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.

答案 1 :(得分:5)

你可以做到

// 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];