编写一个程序,使用console.log打印1中的所有数字 到100,有两个例外。对于可被3整除的数字,请打印“Fizz” 而不是数字,对于可被5(而不是3)整除的数字,打印 “Buzz”而不是。
如果你有这个工作,修改程序打印“FizzBuzz”, 对于可被3和5整除的数字(仍然打印“Fizz”或 对于可被其中一个整除的数字的“Buzz”。)
我只得到前两个条件而不是第三个条件。我不知道该怎么办,我尝试了很多选择。以下是我的代码:
<html>
<head/head>
<body>
<script type="text/javascript">
for (i = 1; i <= 100; i++)
if (i % 3 == 0) {
document.write("Fizz");
document.write("<br />");
} else if (i % 5 == 0 && i % 3 != 0) {
document.write("Buzz");
document.write("<br />");
} else if (i % 3 && 5 == 0 && i % 3 != 0 && i % 5 != 0) {
document.write("FizzBuzz");
document.write("<br />");
} else {
document.write(+i);
document.write("<br />");
}
</script>
</body>
</html>
答案 0 :(得分:3)
首先检查最具体的(FizzBuzz)条件。
function fizzBuzz() {
for(var i = 1; i <= 100; i++){
if(i % 5 === 0 && i % 3 === 0){
console.log('FizzBuzz');
} else if(i % 3 === 0){
console.log('Fizz');
} else if(i % 5 === 0){
console.log('Buzz');
} else {
console.log(i);
}
}
}
答案 1 :(得分:0)
这是你的代码的更新版本,我保留它,因为你写了一些更改,我使它工作没有触摸它的逻辑,你可以看到问题是在第一次比较和在第二个&#34; if else&#34; (5永远不会等于0)。你可以优化代码,祝你好运。
UIImage(named: "MyImage", in: Bundle(identifier: "bundleIdentifier"), compatibleWith: nil)
答案 2 :(得分:0)
由于每个人都在贡献,我不妨给你一个有趣的解决方案:
var i = 101;
while(i --> 0){ // as i goes to 0... wat
var state = !!(i % 3) << 1 | !!(i % 5), // compute state?
output = ["FizzBuzz", "Fizz", "Buzz", i]; // hmm...
console.log(output[state]); // output correct string
}
答案 3 :(得分:0)
1 - 而不是document.write
使用console.log
,而不是问题
2nd - 您在head部分有语法错误。它应该是<head></head>
第3 - 对于问题的第1个部分,您只需要:
for (i = 1; i <= 100; i++) {
// if i is divisible by 3
if (i % 3 == 0) {
console.log("Fizz");
}
// if i is divisible by 5 (no need to check for 3 again)
else if (i % 5 == 0) {
console.log("Buzz");
}
// else
else {
console.log(i);
}
}
4 - 对于第二部分,您需要在已经拥有的内容之外添加额外内容:
for (i = 1; i <= 100; i++) {
// if i is divisible by 3 and 5
if (i % 3 == 0 && i % 5 == 0) {
console.log("FizzBuzz");
}
// if i is divisible by 3
else if (i % 3 == 0) {
console.log("Fizz");
}
// if i is divisible by 5 (no need to check for 3 again)
else if (i % 5 == 0) {
console.log("Buzz");
}
// else
else {
console.log(i);
}
}
答案 4 :(得分:0)
您可以使用 while 循环,而不是使用嵌套的 if 语句来检查条件。
let number = 0;
while (number <= 100) {
if(number % 3 === 0 && number % 5 === 0){
console.log("FizzBuzz");
}else if(number % 3 === 0){
console.log("Fizz");
}else if(number % 5 === 0){
console.log("Buzz");
}else{
console.log(number);
}
number++;
}
答案 5 :(得分:-1)
你应该只使用一个从1开始并且小于101(因此最多为100)的循环并测试%n === 0
。换句话说,确保没有余数。
function startConsoleDemo(){
for(var i=1,r; i<101; i++){ // loop from 1 to 100
r = i; // default value of r
if(i % 3 === 0 && i % 5 === 0){ // if i/3 and 1/5 do not produce a remainder
r = 'FizzBuzz'; // reassign r
}
else if(i % 3 === 0){ // we knew i % 5 !== 0 so see if i/3 does not produce a remainder
r = 'Fizz'; // reassign r
}
else if(i % 5 === 0){ // we already knew i % 3 !== 0 - you know the drill
r = 'Buzz'; // reassign r
}
console.log(r); // console at each step of the loop no matter what
}
}
startConsoleDemo(); // without () you can use like a var then () later