gpt4 book ai didi

javascript - 打印 100 到 200,除了三个异常(exception)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:36 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来打印从 100 到 200 的数字,但有以下三个异常(exception):

如果数字是 3 的倍数,则应返回字符串“yes”而不是数字。

如果数字是 4 的倍数,则应返回字符串“yes and yes”而不是数字。

如果数字是 3 和 4 的倍数,则用字符串“yes, yes and yes”代替数字。

我是 JavaScript 的新手,所以我试着一步一步来。

我写了这段代码来打印从 100 到 200 的数字:

function hundredTwoHundred() {
result = [];
for (let i = 100; i <= 200; i++) {
result.push(i);
}
return result;
}

console.log(hundredTwoHundred());

然后我尝试使用 else/if 作为异常(exception):

function hundredTwoHundred() {
result = [];
for (let i = 100; i <= 200; i++) {
if (i % 3 == 0) {
console.log("yes");
} else if (i % 4 == 0) {
console.log("yes and yes")
} else if (i % 3 == 0 && i % 4 == 0) {
console.log("yes, yes and yes");
} else {
result.push(i)
}
}
return result;
}

console.log(hundredTwoHundred());

代码当然是行不通的。我试过四处移动 result.push(i) ,但我不想在不知道其背后原因的情况下盲目地四处移动。

如何使用条件运算符来查找这些异常?我做错了什么?

谢谢。

最佳答案

您需要测试数字是否(可被 3 整除可被 4 整除),然后检查它是否(单独)可被 3 或 4 整除,否则第一个条件 if (i % 3 == 0) 将评估为 true 并且您将得到 yes 而不是 yes, yes and是的。您还应该 push 条件语句中的 result 而不是条件语句中的 console.logging,因为您想创建一个 数组yeses 然后 console.log 整个构造的数组 afterwards

还要确保使用 const(或 var,对于 ES5)声明 result - 隐式创建全局变量并不好。

此外,虽然在这种情况下并不重要,但在比较时,默认情况下依赖===而不是==<会更好 - 最好只在你故意依赖隐式类型强制时使用 ==,这会导致困惑的行为。

function hundredTwoHundred() {
const result = [];
for (let i = 100; i <= 200; i++) {
if (i % 3 === 0 && i % 4 === 0) {
result.push("yes, yes and yes");
} else if (i % 3 === 0) {
result.push("yes");
} else if (i % 4 === 0) {
result.push("yes and yes")
} else {
result.push(i)
}
}
return result;
}

console.log(hundredTwoHundred());

关于javascript - 打印 100 到 200,除了三个异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51807673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com