2014-12-23 2 views
-1

У меня есть генератор случайных имен, используя простую случайную систему, в основном это получает номер 1 - 10, то есть куча есть заявления для чиселMultiple еще, если заявления Fix

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

есть способ Я мог бы конденсировать это? какие-нибудь советы?

+0

вы могли бы использовать switch, но почему вы не помещаете свои значения в массив и не получаете элемент с r Индекс? – deterministicFail

+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. 
+0

Ваше решение отлично работает !!! Большое вам спасибо – upperworlder

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]; 
+0

также вы научили меня о .split(), о котором я никогда не знал. для этого я даю вам удивительность ++; – upperworlder

Смежные вопросы