【问题标题】:Values generated by math.random in a while loopmath.random 在 while 循环中生成的值
【发布时间】:2017-09-26 20:29:00
【问题描述】:

昨天开始学习javascript!我在编程的第一天。 :-) 如何检索满足条件!=2 之前生成的随机数?谢谢

var count = 0;
function pcNum() { 
    return(Math.floor(Math.random()*10));  
}
while (pcNum()!=2) {
    count++;           
}

【问题讨论】:

  • 将生成的数字保存在类似的数组中。
  • 嗨 Andrew,谢谢,我已经尝试过了,但是如果我附加我迄今为止学到的方法(即 xyz.push(pcNum()) 它不起作用,因为它插入了一个系列数字包括 2... 所以我认为它与激活和停止循环的集合不同。

标签: javascript function while-loop


【解决方案1】:

您应该能够使用数组和 array.push() 方法内联执行此操作。

var count = 0;
var randArray = [];
function pcNum() { 
    return(Math.floor(Math.random()*10));
}

while (randArray.push(pcNum())!=2) {
    count++;
}

【讨论】:

  • push 返回数组的长度
  • 你是对的;我把这归结为一个困倦的早晨哈。我的错。
【解决方案2】:
let myarray=[];
var count = 0;
function pcNum() { 
    return(Math.floor(Math.random()*10));  
}
while (num=pcNum())!==2) {
    myarray.push(num);
    count++;           
}

【讨论】:

    【解决方案3】:

    欢迎使用 JavaScript!实现此目的的一种方法是将您的随机数存储在一个数组中,并使用您现有的count 变量作为数组索引。在 while 循环中的每一次通过时,递增计数并将新的随机数压入数组:

    var count = 0;
    
    function pcNum() { 
        return Math.floor(Math.random()*10);  
    }
    
    // randomNumbers[count] = first random number
    var randomNumbers = [pcNum()];
    
    while (randomNumbers[count] != 2) {
        count++;
        randomNumbers.push(pcNum());
    }
    
    console.log('ran %s times', count);
    console.log(randomNumbers);

    【讨论】:

    • 感谢您的解决方案和清晰的解释!享受我的第一个 javascript 日 :-) 如果我知道编程是如此有趣,我不会在 20 年前接受 seo 和网络营销 :-)
    • 很高兴为您提供帮助!是的,编程作为一种爱好和/或职业非常有趣和充实——我相信你在 SEO 和营销方面的经验将证明是有用的。我强烈推荐 MDN(尤其是 W3Schools)developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
    【解决方案4】:

    如果您想查看它们是什么,可以使用 console.log(您必须打开浏览器调试器才能看到)。

    var count = 0;
    function pcNum() { 
        var num = Math.floor(Math.random()*10);
        console.log(num);
        return(num);  
    }
    while (pcNum()!==2) {
        count++;           
    }
    

    如果你想访问它,你需要存储结果。

    var count = 0;
    function pcNum() { 
        return(Math.floor(Math.random()*10));  
    }
    var num = pcNum();
    while (num!==2) {
        count++;  
        //do something with num
        num = pcNum();         
    }
    

    【讨论】:

      【解决方案5】:

      类似:

      function pcNum() {
          return(Math.floor(Math.random()*10));
      }
      var nums = [];
      for (var num = pcNum(); num != 2; num = pcNum()) {
        nums.push(num);
      }
      var count = nums.length;
      

      【讨论】:

        【解决方案6】:
            var count = 0;
        function pcNum() { 
        return(Math.floor(Math.random()*10));  
                         }
        
        while (pcNum()!==2) {
            pcNum();//Random generator
        count++;           }
        

        这样试试

        【讨论】:

          【解决方案7】:
          var num=null;
           while ((num=pcNum())!=2) {
             count++;           
          }
          alert(num);
          

          这会将当前数字存储在 var num 中。如果要全部存储:

          var num=null,array=[];
          while((num=pcNum())!=2) array.push(num);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-02-18
            • 1970-01-01
            • 1970-01-01
            • 2012-02-24
            • 1970-01-01
            • 2016-01-17
            • 2021-04-22
            相关资源
            最近更新 更多