【问题标题】:I'm trying to write a function that Randomizes a number (range 0..100), then prints all the odd numbers from 40 to that one我正在尝试编写一个函数来随机化一个数字(范围 0..100),然后打印从 40 到那个的所有奇数
【发布时间】:2013-09-04 15:46:16
【问题描述】:

我是 JavaScript 新手,我正在努力学习基础知识。我无法让这段代码工作。

我正在尝试创建一个函数(以下内容取自我正在做的练习)随机化一个数字(范围 0..100),然后打印从 40 到那个奇数的所有奇数。如果数字小于 40,则将所有数字打印到随机数(即如果结果为 37,则 应该打印:40、39、38、37)。

您的意见将不胜感激。

var sol3 = function() {
    var n = Math.floor(Math.random()*100);

    if (n > 40) {
        for( var i = 41; i <= 100; i++2);
        console.log(i);
    }
    else if (n < 40) {
        for (var i = 39; i <= 40; i--2);
        console.log(i);
    }

    return i;
};

so13();

【问题讨论】:

  • 您遇到了哪些问题?这也需要标记为家庭作业。
  • 首先修复语法错误。如果您使用的是控制台,它应该会告诉您有关它们的信息。

标签: javascript function


【解决方案1】:

您的代码有问题 -

  1. i++2 不正确
  2. ; 后面的for 不正确
  3. i--2 不正确
  4. 你打电话给sol13(),那是数字1,不是字母l
  5. return i 但它有效!

demo here

var sol3 = function () {
    var n = Math.floor(Math.random() * 100);

    console.log("n = " + n);

    if (n > 40) {

        for (var i = 41; i <= n; i += 2)
            console.log(i);

    } else if (n < 40) {

        for (var i = 40; i >= n; i--)
            console.log(i);
    }

    return i;

};

sol3();

【讨论】:

  • 感谢您指出所有这些问题...我永远不会发现我使用 1 而不是 l 调用函数!
【解决方案2】:
var sol3 = function() {

    var n = Math.floor(Math.random() * 100);
    var odds = new Array();
    console.log("n:" + n);

    if (n > 40) {        
        for (var i = 41; i <= n; i+=2) {
            console.log(i);
            odds.push(i);
        }
    }
    else {        
        for (var i = 39; i >= n; i-=2) {
            console.log(i);
            odds.push(i);
        }
    }
    return odds;
};

sol3();

【讨论】:

  • 我不熟悉.push,我会查一下。干杯!
【解决方案3】:
var sol3 = function(){

    var n = Math.floor(Math.random()*100);

    if (n > 40){
        while( n < 100){
            if( n%2==1){
                console.log(n);
            }
            n++;
        }
    }
    else if (n < 40) {
        for (var i = 39; i >= n; i--){
            console.log(i);
            }
    }
    return i;
};
sol();

【讨论】:

    【解决方案4】:

    尝试更改此行

    for (var i = 39; i &lt;= 40; i--2);

    到:

    for (var i = 39; i &gt;=0; i-=2)

    还将第一个 for 循环从 i++2 更改为 i+=2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2020-06-23
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多