问题描述
我想在 console.log
中打印字符串:“Fizz”、“Buzz”和“FizzBuzz”,而不是它们所指的数字。关键是直到现在我都可以得到数字和字符串,但我不知道如何用字符串来克服数字值。例如,下面代码的 console.log
应该是 1 2 Fizz
而不是 1 2 3 Fizz
。
//Define listNumber
var listNumber;
//Generate numers from 1 to 100
for (i = 1; i <= 100; i++) {
listNumber = i;
console.log(listNumber);
if ((listNumber % 3 == 0) && (listNumber % 5 == 0)) {
console.log('FizzBuzz');
} else if (listNumber % 3 == 0) {
console.log('Fizz');
} else if (listNumber % 5 == 0) {
console.log('Buzz');
}
}
解决方法
在检查之前记录初始值。只需将其移动到计算的末尾,如果它既不是 Fizz
、Buzz
或 FizzBuzz
,则它会打印实际数字。
//Define listNumber
var listNumber;
//Generate numers from 1 to 100
for (i = 1; i <= 100; i++) {
listNumber = i;
if ((listNumber % 3 == 0) && (listNumber % 5 == 0)) {
console.log('FizzBuzz');
} else if (listNumber % 3 == 0) {
console.log('Fizz');
} else if (listNumber % 5 == 0) {
console.log('Buzz');
} else {
console.log(listNumber);
}
}
像这样:
//Define listNumber
var listNumber;
//Generate numers from 1 to 100
for (i = 1; i <= 100; i++) {
listNumber = i;
if ((listNumber % 3 == 0) && (listNumber % 5 == 0)) {
console.log('FizzBuzz');
} else if (listNumber % 3 == 0) {
console.log('Fizz');
} else if (listNumber % 5 == 0) {
console.log('Buzz');
} else console.log(listNumber);
}
我仅在未登录 listNumber
、FizzBuzz
或 Fizz
的情况下才登录 Buzz
。
在 for 循环中,您正在打印当前的 i。 如果您希望代码正常工作,您可以向其中添加一个 else 语句,这样它只会记录一次。
var listNumber;
//Generate numers from 1 to 100
for (i = 1; i <= 100; i++) {
listNumber = i;
if ((listNumber % 3 == 0) && (listNumber % 5 == 0)) {
console.log('FizzBuzz');
} else if (listNumber % 3 == 0) {
console.log('Fizz');
} else if (listNumber % 5 == 0) {
console.log('Buzz');
}
else{
console.log(listNumber);
}
}
,
您可以在条件结构中使用 else
语句。这样,只有在所有条件都为假时才会打印数字。
for (i = 1; i <= 100; i++) {
listNumber = i;
if ((listNumber % 3 == 0) && (listNumber % 5 == 0)) {
console.log('FizzBuzz');
} else if (listNumber % 3 == 0) {
console.log('Fizz');
} else if (listNumber % 5 == 0) {
console.log('Buzz');
} else {
console.log(listNumber);
}
}
,
我想这就是你要找的。而不是每次在 for 循环中打印 listNumber 在 if else 子句中放置一个额外的 else 并仅在未打印时打印“Fizz(/&)Buzz”
//Define listNumber
var listNumber;
//Generate numers from 1 to 100
for (i = 1; i <= 100; i++) {
listNumber = i;
if ((listNumber % 3 == 0) && (listNumber % 5 == 0)) {
console.log('FizzBuzz');
} else if (listNumber % 3 == 0) {
console.log('Fizz');
} else if (listNumber % 5 == 0) {
console.log('Buzz');
}
else {
console.log(listNumber);
}
}