2015-04-12 3 views
0

У меня есть генератор случайных чисел здесь, который выбирает число от 1 - 50.Looping с генератором случайных чисел в Java

То, что я хочу, чтобы это сделать, это выбрать второе случайное число от 1-50, что будет только печатайте на консоль, если она больше, чем предыдущее случайное число, и повторяйте несколько раз, допустим, 10 раз.

Мой учитель хочет, чтобы использовать метод только Math.Floor (Math.random(), чтобы сгенерировать номер, так что я должен работать с этим.

Я не знаю, как сравнить последние сгенерированный номер к предыдущему сгенерированного числа.

То, что я получил до сих пор

int myRand = 10; 
    while (myRand > 0) { 
     int myRand2 = (int) (Math.floor(Math.random() * 50) + 1); 
     System.out.println(myRand2); 
     System.out.println(); 
     myRand--; 

Где бы вторая часть, которая будет сравнивать, что первый сгенерированное число последующих сгенерированных чисел идут?

+0

Пожалуйста, взгляните на класс «Случайный». Не только яснее получить целочисленное значение с помощью 'nextInt()', вы также обходите многие подводные камни и избегаете кастинга. – Hannes

ответ

1

Давайте, выбирая случайное число:

int randomNumber = pick(); 

Теперь вам нужно выбрать еще одну

int otherRandomNumber = pick(); 

и распечатать его на консоли, если он больше, чем предыдущий

if (otherRandomNumber > randomNumber) { 
    System.out.println(otherRandomNumber); 
} 

Но вы должны сделать это в 10 раз, так что вам нужен цикл:

for (int i = 0; i < 10; i++) { 

И, в конце каждой итерации, «другие», последнее случайное число становится предыдущими один из следующей итерации , так что переименуем переменные и соберите все это:

int previousRandomNumber = pick(); 

for (int i = 0; i < 10; i++) { 
    int otherRandomNumber = pick(); 

    if (otherRandomNumber > previousRandomNumber) { 
     System.out.println(otherRandomNumber); 
    } 

    previousRandomNumber = otherRandomNumber; 
} 
+0

Спасибо, это дало понять. Наверное, у меня проблема с «пока», поскольку я был не уверен, где я должен поставить счетчик, который заканчивает цикл. – AndoTwo

0

Ваша первая переменная myRand не случайна ... Для меня это больше похоже на ваш итератор цикла. Вы никогда не делаете две случайные переменные. Если я правильно понимаю ваш вопрос, ваш ответ должен выглядеть следующим образом: начало

int i = 10; 
while (i > 0) 
{ 
    int myRand1 = (int) (Math.floor(Math.random() * 50) + 1); 
    int myRand2 = (int) (Math.floor(Math.random() * 50) + 1); 
    if (myRand2 > myRand1) 
     System.out.println(myRand2); 

    System.out.println(); 
    i--; 
} 
+0

Я не мог сказать по этому вопросу, но если вы хотите, чтобы первое случайное число выбиралось только один раз, объявляйте его вне цикла. – Peter

+0

Извинения, я немного опечалил вопрос. Это тот счетчик в конце, который все испортил мне. – AndoTwo

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