Почему не работает мой цикл do-while?(несколько переменных, сгенерированных в функции) - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть функция, которая генерирует два числа.Функция имеет цикл для генерации чисел до тех пор, пока не найдет два, произведение которых делится равномерно на 24. Это часто работает, но иногда не удается это сделать.

function randomBetween(min, max) {
  var ceiling = max + 1;
  return Math.floor(Math.random() * (ceiling - min)) + min;
}


function DOBINGenerateNonWhole() {
  var random;
  var random2;

  do {
    random = randomBetween(3, 36);
    random2 = randomBetween(3, 36);

  } while ((24 % (random * random2) != 0));
  return {
    random: random,
    random2: random2,

  }
}

var Span1 = DOBINGenerateNonWhole().random;
$('.Span1').html(Span1);

var Span2 = DOBINGenerateNonWhole().random2;
$('.Span2').html(Span2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="Span1"></div>
<div class="Span2"></div>

1 Ответ

0 голосов
/ 28 декабря 2018

Вы запускаете DOBINGenerateNonWhole() дважды, что вызывает проблему.random и random2 не относятся к одному и тому же вызову, поэтому нет оснований для того, чтобы их продукт имел коэффициент 24

Если вы обновите свой код, чтобы сохранить результат, он должен работать:

var result = DOBINGenerateNonWhole();
$('.Span1').html(result.random);
$('.Span2').html(result.random2);
...