2010-12-19 14 views
0

私は言語でプログラムするのに使います。異なる数字のセットから番号を求めたい場合は、x = choose(0、-1,2,5 )それからランダムにそれらのオプションの1つを選択し、私に結果を与えるだろうが、私はアンドロイドとjavaで作業しているので、私はアンドロイドSDKで見つけることができる何もtheresとしてその機能を複製する方法を知らないlikeそれランダムに選択肢xの量を選択するコードを取得する

答えて

0

整数を生成するには、random関数を使用します。この整数は、オプションのリストのインデックスになります。

+0

私はそれが、その非常に柔軟ではないと考えていました – Foxx

1

はあなたの番号が整数配列に配置されていると仮定します。

int[] numbers = {0, -1, 2, 5}; 

あなたのようにXに乱数を置くことができます。

int x = numbers[Random.nextInt(4)]; 

EDIT:

はおそらく作成しますクラス内の静的関数を使用すると、このソリューションは以前の言語で使用したものに似ています。

public class MyUtil{ 
    private static Random random = new Random(); 
    public static int choose(int ... numbers){ 
     return numbers[random.nextInt(numbers.length)]; 
    } 
} 

あなたにあなたのコード内の任意の場所にこの機能を使用することができます。これは、あなたが期待するものにあなたのコードは非常によく似たようになります

private static Random random = new Random(); 

public static int choose(int ... numbers){ 
     return numbers[random.nextInt(numbers.length)]; 
} 

:あなたは可変引数機能を使用することができます

int x = MyUtil.choose(0, -1, 2, 5); 
+0

に合うようにしています。私はちょうどこれをタイプしていました..........:xも数字[Math.Random()* 3]と等しくなります。 .. lol – viv

+0

ああ、もう少し意味があり、ほんの少しだけ仕事です。 – Foxx

+0

あなたが達成しようとしていることは、ランダムな選択ロジックを関数に抽象化することだと思います。 "EDIT"の後に私の答えをチェックしてください。 – craftsman

0

。アレイの作成は暗黙的である:私は私が望んでいたし、ちょうど私が試した多くの混乱になるだろうどのように多くの選択肢ほどの大きさだったインデックスを持つ必要があるだろうと

int x = choose(1,5,20,4); 
関連する問題