为什么即使第一个if语句为真,它也会跳过并继续
why does it skip and continue even if the first if statement is true
您可以立即看到这是一个for循环,这里有一些if条件(这就是您所说的"if条件"吗???)其实我有两个问题。
我在CodeAcademy工作,它要求我这样做:
Print out the numbers from 1 - 20.
The rules:
For numbers divisible by 3, print out "Fizz".
For numbers divisible by 5, print out "Buzz".
For numbers divisible by both 3 and 5, print out "FizzBuzz" in the console.
Otherwise, just print out the number.**
这是我到目前为止所做的,我确实认为它的工作是正确的,总的来说是正确的,但CodeAcademy并没有说它是。我想知道是否有人知道我的代码有问题,或者这只是一种不同的方式来做他们所要求的确切的事情(参考上面的规则)。
第二个问题,这是我更好奇的问题。现在我们以15为例。JavaScript遇到15。如果15可以被3整除并且还剩下0,那么它不应该是console.log("Fizz"),而不是一直到最后一个底部代码和console.log("FizzBuzz");有人能给我解释一下吗?
for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
if (iterator % 3 === 0) {
console.log("Fizz");
} else if (iterator % 5 === 0) {
console.log("Buzz");
} else if (iterator % 3 === 0) {
if (iterator % 5 === 0) {
console.log("FizzBuzz");
}
} else {
console.log(iterator);
}
}
我测试了你的代码,没有得到你描述的输出,15成功打印"FizzBuzz"。我得到的预期结果是15显示为"Fizz"。它不能正常工作,因为它没有机会到达最后的if语句来打印15的"FizzBuzz"。一个简单的解决办法是,当一个数能被3整除时,检查是否能被5整除。
for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
if (iterator % 3 === 0) {
if (iterator % 5 === 0) {
console.log("FizzBuzz"); //divisible by 3 and 5
} else {
console.log("Fizz"); //only divisible by 3
}
} else if (iterator % 5 === 0) {
console.log("Buzz"); //only divisible by 5
} else {
console.log(iterator); //not divisible by 3 or 5
}
}
它可能会给你解决方案:只需重新排列代码:
for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
if (iterator % 3 === 0) {
if (iterator % 5 === 0) {
console.log("FizzBuzz");
}
}else if (iterator % 3 === 0) {
console.log("Fizz");
} else if (iterator % 5 === 0) {
console.log("Buzz");
} else {
console.log(iterator);
}
}
首先检查是否能被3和5整除。然后分别检查3和5
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - JS在隐藏未定义的值后仅从数组中返回第一个id的值
- 高图表,检测点是否在堆栈中的第一个
- json结果显示第一个值
- 为什么即使第一个if语句为真,它也会跳过并继续