2015-07-29 2 views
1

У меня есть список из трех переменных: (a, b, c). Есть ли способ выбрать случайное из этого списка, если какое-либо условие выполнено? скажем:выбрать случайное число из списка

if(some variable=2) 
{ 
    pick one variable from the list 
} 
if(some variable=4) 
{ 
    pick 2 variables from the list 
} 
.. 
and here comes the tricky part 

if(some variable=10) 
{ 
    pick 5 variables out of the list(here the variables can duplicate) 

    it can be something like this : a,a,a,b,b 
} 

Я использую Java для Android.

+1

В чем проблема; почему ты не можешь сделать это? Если вы используете '==' вместо? – ChiefTwoPencils

+0

это только моя идея .. я, похоже, не могу сделать это в android..и знаю, что я должен использовать == –

+0

, ответы ниже помогли вам? –

ответ

1

Просто создайте метод, который генерирует случайное число и использует его для получения элемента из списка. Вызовите его изнутри каждого заявления if, и это должно сделать трюк. Нечто подобное (и это только идея):

private Object random() { 
    Random random = new Random(); 
    int index = random.nextInt(3); 
    return yourList.get(index); 
} 
0

Если вы используете массив или ArrayList, вы должны будете использовать случайный объект.

ArrayList<String> yourArrayList = new ArrayList<>(); 
yourArrayList.add("a"); 
yourArrayList.add("b"); 
yourArrayList.add("c"); 
Random randomGenerator = new Random(); 
int index = randomGenerator.nextInt(yourArrayList.size()); 
String item = yourArrayList.get(index); 
0

Надеюсь, это может вам помочь. Этот код предназначен для java. Если вы находитесь на android, просто игнорируйте Scanner и передавайте переменную по своему усмотрению. Я использовал Scanner только для ввода ввода с консоли.

import java.util.Random; 
import java.util.Scanner; 
public class Select{ 
    Random r = new Random(); 
    public Select(int num){ 
     int a; 
     char [] list = {'a', 'b', 'c'}; 
     a=num/2; 
     char [] show = new char [a]; 
     int [] rand = new int [a]; 
     for(int i=0;i<a;i++){ 
      rand[i]=r.nextInt(3); 
     } 
     for(int i=0;i<a;i++){ 
      show[i]=list[rand[i]]; 
     } 
     for(int i=0;i<a;i++){ 
      System.out.println(show[i]); 
     } 
    } 
    public static void main(String args[]){ 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Enter a no."); 
     int no = scan.nextInt(); 
     Select s = new Select(no); 

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