Javascript 这个if/else代码有什么错误?
我对这些说明有什么问题? 打印出1-20之间的数字。 规则: 对于可被3整除的数字,请打印“Fizz”。 对于可被5整除的数字,请打印“Buzz”。 对于同时被3和5整除的数字,请在控制台中打印“FizzBuzz”。 否则,只需打印出号码即可Javascript 这个if/else代码有什么错误?,javascript,Javascript,我对这些说明有什么问题? 打印出1-20之间的数字。 规则: 对于可被3整除的数字,请打印“Fizz”。 对于可被5整除的数字,请打印“Buzz”。 对于同时被3和5整除的数字,请在控制台中打印“FizzBuzz”。 否则,只需打印出号码即可 for (var i = 1; i < 21; i++) { if (i % 3) { console.log("Fizz"); } if (i % 5) { console.log("Buzz
for (var i = 1; i < 21; i++) {
if (i % 3) {
console.log("Fizz");
}
if (i % 5) {
console.log("Buzz");
}
if ((i % 3) && (i % 5)) {
console.log("FizzBuzz");
} else {
console.log(i);
}
}
for(变量i=1;i<21;i++){
如果(i%3){
控制台日志(“嘶嘶声”);
}
如果(i%5){
控制台日志(“嗡嗡声”);
}
如果((i%3)和&(i%5)){
console.log(“FizzBuzz”);
}否则{
控制台日志(i);
}
}
运算符返回值不是布尔值,而是除法运算的剩余部分。因此,您需要检查余数是否为0
for (var i = 1; i < 21; i++) {
if ((i % 3) == 0) {
console.log("Fizz");
}
if ((i % 5) == 0) {
console.log("Buzz");
}
if (((i % 3) == 0) && ((i % 5) == 0)) {
console.log("FizzBuzz");
} else {
console.log(i);
}
}
for(变量i=1;i<21;i++){
如果((i%3)==0){
控制台日志(“嘶嘶声”);
}
如果((i%5)==0){
控制台日志(“嗡嗡声”);
}
如果((i%3)==0)和((i%5)==0)){
console.log(“FizzBuzz”);
}否则{
控制台日志(i);
}
}
您似乎正在尝试这样做:
for (var i = 1; i < 21; i++) {
if ((i % 3) === 0 && (i % 5) === 0) {
console.log("FizzBuzz");
}
else if (i % 3 === 0) {
console.log("Fizz");
}
else if (i % 5 === 0) {
console.log("Buzz");
}
else {
console.log(i);
}
}
否则,对于数字15,%运算符将返回余数,因此如果我们这样做:
9 % 3
结果是0-因为3是9的平方根…您的if条件正在检查非零结果
你应该做:
if (! (i % 3))
for ( var i =1 ; i < 21 ; i++ ) {
if(i%3==0){
console.log("Fizz");
}
if(i%5==0){
console.log("Buzz");
}
if((i%3==0) && (i%5==0)){
console.log("FizzBuzz");
} else {
console.log(i);
}
}
检查是否返回0
也可以考虑使用SME <代码>否则,如果在代码中正确使用嵌套,则/>代码,你就可以了。
< P>当代码>编号3=0=0/代码>时,可将数字整除。此外,您需要了解else if
,并考虑条件的顺序。这就是你解决这个问题所需要的
仅仅向您展示解决方案并不能帮助您学习编程。您没有检查数字是否可以被3或5整除。你在检查这是不是真的
这就是你应该做的:
if (! (i % 3))
for ( var i =1 ; i < 21 ; i++ ) {
if(i%3==0){
console.log("Fizz");
}
if(i%5==0){
console.log("Buzz");
}
if((i%3==0) && (i%5==0)){
console.log("FizzBuzz");
} else {
console.log(i);
}
}
(变量i=1;i<21;i++)的
如果(i%3==0){
控制台日志(“嘶嘶声”);
}
如果(i%5==0){
控制台日志(“嗡嗡声”);
}
如果((i%3==0)和&(i%5==0)){
console.log(“FizzBuzz”);
}否则{
控制台日志(i);
}
}
mod函数“%”返回余数。如果没有余数,则是一个干净的除法。因此,您希望确保结果为0 i%x
返回i/x
的剩余部分,因此需要对照==0
进行检查
此外,您应该首先检查i%3==0&&i%5==0
,如果
,则使用else,否则所有语句都将一直执行,无论前面的语句是否为真
for(变量i=1;i<21;i++){
如果((i%3==0)和&(i%5==0)){
console.log(“FizzBuzz”);
}如果(i%3==0),则为else{
控制台日志(“嘶嘶声”);
}else如果(i%5==0){
控制台日志(“嗡嗡声”);
}否则{
控制台日志(i);
}
}
你认为i%3
做什么?尝试使用else if而不是just if。否则,嵌套是错误的。好吧,无论如何,它运行时没有错误。所以,如果它没有达到你的预期,你需要更仔细地看。这是家庭作业吗?当然是家庭作业。像这样的东西除了简单的解决问题的练习外,没有其他作用。这就是为什么有4个非常相似的答案都是正确的,但略有不同。如果我给你的程序编号15,它会打印什么?它会打印嘶嘶声、嗡嗡声和嘶嘶声。从逻辑上讲,这就是它应该打印的内容。我明白你的意思了。我在修改他的密码。但我没有修正所有的逻辑。