【问题标题】:How can I use loops to simplify this long if-else code?如何使用循环来简化这个长 if-else 代码?
【发布时间】:2021-03-15 11:18:01
【问题描述】:

我是编码新手,我们正在学习循环和条件。

为了练习,我应该编写如下代码:“向用户请求 10 个数字并计数,有多少是正数、负数或零。另外,计算奇数和偶数。显示统计信息。 用户输入只需要一个变量(不是 10 个)。"

到目前为止,我有这个代码,但是它太长了(我故意停在第三个数字上),并且它不尊重用户输入只需要一个变量的条件。我可以使用循环来做到这一点吗?是否可以?我们还没有了解数组。

var posCount = 0; var negCount = 0; var zeroCount = 0; 
var evenCount = 0;var oddCount = 0;

let n1 = prompt('Enter number 1:');
let n2 = prompt('Enter number 2:');
let n3 = prompt('Enter number 3:');
if (n1 > 0) {
    posCount++;
} else if (n1 == 0) {
    zeroCount++;
} else {
    negCount++;
}
if (n1 % 2 == 0) {
    evenCount++;
}
else {
    oddCount++;
}

if (n2 > 0) {
    posCount++;
} else if (n2 == 0) {
    zeroCount++;
} else {
    negCount++;
}
if (n2 % 2 == 0) {
    evenCount++;
}
else {
    oddCount++;
}

if (n3 > 0) {
    posCount++;
} else if (n3 == 0) {
    zeroCount++;
} else {
    negCount++;
}
if (n3 % 2 == 0) {
    evenCount++;
}
else {
    oddCount++;
}

console.log('There are ' + negCount + ' negative numbers');
console.log('There are ' + posCount + ' positive numbers');
console.log('There are ' + zeroCount + ' 0s');
console.log('There are ' + oddCount + ' odd numbers');
console.log('There are ' + evenCount + ' even numbers');

【问题讨论】:

  • 是的,您应该为此使用循环。 “我们还没有学习数组。” - 不需要数组。

标签: javascript loops while-loop


【解决方案1】:

我会给你一些提示而不是直接的解决方案,以免破坏你的锻炼。

重要的是要了解您不必一次存储所有输入,因为您不需要同时使用它们。

如果您想要更详细的提示,请将鼠标悬停在此块上。

您可以提示输入一个,处理它,然后提示输入下一个。

这样你就可以使用循环而不用担心数组,并且只需要一个变量来读取输入。

最后,如果您仍然无法理解,请提供一些真实的代码:

var posCount = 0;变量 negCount = 0; var zeroCount = 0;
var evenCount = 0;varododCount = 0;

for (让 i = 1; i 

【讨论】:

    【解决方案2】:

    这段代码怎么样?我添加了一个数组,因为它使代码非常简单。希望你能赶上。

        let n = [];
        for (var i = 0; i <= 10; i++) {
            n[i] = prompt('Enter number 1:');
            if (n[i] > 0) {
                posCount++;
            } else if (n[i] == 0) {
                zeroCount++;
            } else {
                negCount++;
            }
            if (n[i] % 2 == 0) {
                evenCount++;
            } else {
                oddCount++;
            }
        }
    

    【讨论】:

    • 不,你根本不需要数组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 2021-08-03
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多