如何运行功能,直到达到期望的结果?

时间:2019-01-26 08:01:45

标签: javascript

考虑此代码。这是我正在编写的程序的简化。

let numberOne;
let numberTwo;

function assignNumbers() {
  numberOne = Math.random()*10
  numberTwo = Math.random()*10
}

我试图弄清楚如何运行assignNumbers()函数,直到numberOnenumberTwo都小于5为止。这是我想出的,但是我不确定自己走的路是否正确:

if (numberOne < 5 && numberTwo < 5) {
    console.log('success');
    return;
  } else {
    //what goes in here?
  }

当然,我可以将assignNumbers()放在else块中,但是它可能再次失败。如何确保assignNumbers()一直运行到numberOneNumberTwo都小于5为止?

4 个答案:

答案 0 :(得分:2)

您可以使用循环或递归地进行此操作(如Ashay Mandwarya所述)

// Using Loops

let numberOne;
let numberTwo;

function assignNumbers() {
  numberOne = Math.random()*10;
  numberTwo = Math.random()*10;
}

while(true){
  assignNumbers();
  if(numberOne < 5 && numberTwo < 5){
    console.log(numberOne + ' ' + numberTwo);
    break;
  }
}

答案 1 :(得分:2)

只需提供一个班轮即可:

do assignNumbers(); while (numberOne > 4 && numberTwo > 4);

然后,您知道numberOnenumberTwo都具有正确的值。

答案 2 :(得分:1)

如果数字大于5,则可以使用递归再次调用它。 它会检查两个数字是否均小于5。如果是,则返回数字,否则它将再次调用该函数

let numberOne;
let numberTwo;

function assignNumbers() {
  numberOne = Math.random()*10
  numberTwo = Math.random()*10
  if(numberOne<5 && numberTwo<5)
  return numberOne+ " " +numberTwo
  else
  return assignNumbers()
}
console.log(assignNumbers())

答案 3 :(得分:1)

下面是使用递归和ES6箭头功能和三元运算符的示例

let numberOne;
let numberTwo;

const assignNumbers = () => {
   numberOne = Math.random()*10
   numberTwo = Math.random()*10
   return (numberOne < 5 && numberTwo < 5) ? `${numberOne} ${numberTwo}` : assignNumbers();
}
console.log(assignNumbers())