0

の値を追跡し続け、randomNumber それを他の場所で使用するにはどうすればよいですか。以下のコードでは、マウスをクリックするたびに 0 から 10 までの乱数を取得します。

3 回クリックして、たとえば値 1、6、7 を取得した場合、これら 3 つの値を追跡して別の場所で使用するにはどうすればよいですか。それらを のような変数に保存したいのですがint firstClick=?;、どうすればそれを行うことができますかint secondClick=?;int thirdClick=?;

void mousePressed(){
int randomNumber= int(random(11));
System.out.println(randomNumber);
}
4

4 に答える 4

3

クラスのどこかで使用ArrayListします。

public class MyClass {

    private ArrayList<Integer> randomNumbers = new ArrayList<>();

    public void mousePressed() {
        int randomNumber= int(random(11));
        randomNumbers.add(randomNumber);
        System.out.println(randomNumber);
    }

    public void listNumbers() {
        for (Integer number : randomNumbers) {
            System.out.println(number);
        }
    }

}

このようにして、任意の数のマウス クリックとそれらによって生成された数を追跡できます。個々の番号を特定のint変数に割り当てる必要はありません。

于 2013-11-06T19:12:58.790 に答える
2

ステップ 1 : 整数の配列リストを作成する

ステップ 2 : 乱数を生成する

ステップ 3 : 乱数を arraylist に格納する

ステップ 4 : 新しい乱数を生成した後、この arraylist を比較します

ステップ 5 : 新しいランダム no が arraylist に存在しない場合は、それを使用し、この no を arraylist に保存します

ステップ 6 : ランダムな no が arraylist に存在する場合、別のランダムな no を生成します

//global variable
List<Integer> randomNumberArray = new ArrayList<Integer>();

それから

void mousePressed() 

    {
        for (int i = 0; i < 5; i++) 
        {
            int temp = generateRandomNumber();
            if (!randomNumberArray.contains(temp)) 
            {
                randomNumberArray.add(temp);
            }
        }
        System.out.println(randomNumberArray);
    }

    public int generateRandomNumber() 
    {
        Random randomNumber = new Random();
        return randomNumber.nextInt(20);
    }

または、単にセットを使用できます

void mousePressed() 

    {
       Set<Integer> mySet = new HashSet<Integer>();
    for(int i=0;i<5;i++)
    {
        int temp = generateRandomNumber();
        //System.out.println(temp);
        mySet.add(temp);
    }
    System.out.println(mySet);
    }
于 2013-11-06T19:16:49.630 に答える
0
final List<Integer> randomNumbers= new ArrayList<Integer>();
for (int i=0;i<3;i++){
   randomNumbers.add(random(11));
}
// get first one
int i = randomNumbers.get(0);
于 2013-11-06T19:14:23.990 に答える
0

これには、扱っているメソッドを超えるスコープを持つ変数が必要になります。いくつかのオプションは次のとおりです。

// Have the random number be the return value of the method:
public int mousePressed() { return int(random(11)); }

// Have the random number be assigned to a class scoped variable:
static int someN;
public void mousePressed() { someN = int(random(11)); }  

明らかに、これを拡張して 3 つの (または多くの) 値を割り当てて返す必要があります。ここでオブジェクトArrayList<Integer>が役に立ちます。

于 2013-11-06T19:14:34.800 に答える