Javascript 我的嘶嘶声
这是我的嘶嘶声尝试Javascript 我的嘶嘶声,javascript,fizzbuzz,Javascript,Fizzbuzz,这是我的嘶嘶声尝试 (i=1;i这是正确的,但是冗长 让我们把任务分解一下。你有两个因素:是3的倍数,还是5的倍数?当然,两者都可以,或者两者都可以,总共有四种情况。比如: | Not x5 | x5 -------+--------+--------- Not x3 | number | Buzz x3 | Fizz | FizzBuzz 您可以在代码中非常简单地表示这一点: function getFizzBuzz(n) { if(n%5) {
(i=1;i这是正确的,但是冗长 让我们把任务分解一下。你有两个因素:是3的倍数,还是5的倍数?当然,两者都可以,或者两者都可以,总共有四种情况。比如:
| Not x5 | x5
-------+--------+---------
Not x3 | number | Buzz
x3 | Fizz | FizzBuzz
您可以在代码中非常简单地表示这一点:
function getFizzBuzz(n) {
if(n%5) { // not x5
if(n%3) // not x3 either
return n;
else // x3
return 'Fizz';
}
else {
if(n%3)
return 'Buzz';
else
return 'FizzBuzz';
}
}
然后只做一个循环:
for(i=1; i<=20; i++) console.log(getFizzBuzz(i));
完成这项任务的方法有很多。不同之处在于其他程序员以后阅读您的代码有多容易。我认为可以有多种解决方案,关键是要让它更具可读性,正如Niet指出的那样 这是我的版本,有一个 代码:
for(var a=1;a我认为您的解决方案很好。它的可读性也很好,这是编程中的一个大问题
我唯一的建议是从3和5的倍数开始检查(这样您就可以删除非多重检查),使用strick equal比较运算符(==
),并稍微更改代码样式-同样,可读性是巨大的。(我建议的一些风格改变可能不被推荐,这取决于你最终为谁工作或与谁一起工作,所以对此持保留态度。)
以下是代码形式的建议:
for (i = 1; i <= 20; 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)
};
for(i=1;i有很多方法可以做到这一点,但重要的是遵循编码指南,使其更简单易读
class-fizzbuzz{
建造师(嘶嘶声、嗡嗡声、长度){
this.fizz=fizz;
this.buzz=buzz;
这个长度=长度;
}
输出(){
for(设i=0;i 新的fizzbuzz(3,5100).output();
你会说这太迂回了吗?我有点喜欢它的开头,但可能有更好的方法
编辑:虽然我的其他解决方案比其他XD解决方案更加冗长,但看起来还是有点像
//declare the three arrays to store variables
var threeArray = [];
var fiveArray = [];
var threeFiveArray = [];
//prep your fizzes
for (i = 3; i < 100; i+=3){
threeArray.push(i);
}
//prep your buzzes
for (i = 5; i < 100; i+=5){
fiveArray.push(i);
}
//iterate through 0-99 to see if any of the numbers are in fizz, buzz, or both.
for (i = 0; i < 100; i++){
if(threeArray.includes(i) && fiveArray.includes(i)){
threeFiveArray.push(i + ' fizzbuzz');
} else if(threeArray.includes(i)){
threeFiveArray.push(i + ' fizz');
} else if(fiveArray.includes(i)){
threeFiveArray.push(i + ' buzz');
}
}
//return your results
console.log(threeFiveArray);
//声明存储变量的三个数组
var threeArray=[];
var fiveArray=[];
var Three FiveArray=[];
//准备好你的汽水
对于(i=3;i<100;i+=3){
推(i);
}
//准备好你的蜂鸣器
对于(i=5;i<100;i+=5){
五轮推(一);
}
//迭代0-99,查看是否有任何数字是fizz、buzz或两者都有。
对于(i=0;i<100;i++){
if(三个数组包括(i)和五个数组包括(i)){
三个五排。推(i+‘嘶嘶嗡嗡’);
}else if(包括(i)){
三个五排。推(i+‘嘶嘶’);
}其他如果(五列包括(i)){
三个五排。推(i+嗡嗡声);
}
}
//返回您的结果
控制台日志(三个五列);
条件else if(i%5==0&&i%3!==0)
是冗余的,else if(i%5==0)
是足够的,如果你的代码正在工作,那么它就脱离主题了。我认为它对于codereview来说也太模糊了。如果问题要求对工作代码给出不具体的注释,那么它可能是脱离主题的,更适合于我个人,我不觉得特别可读……我认为注释的使用表明这不是一个简单的解决方案。如果它简单易懂,就没有必要了。它是极简的、聪明的,但没有那么简单。使用一些&&
,只使用四个If/else语句而不是嵌套的If/else语句可能有助于提高清晰度。
for (i = 1; i <= 20; 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)
};
//declare the three arrays to store variables
var threeArray = [];
var fiveArray = [];
var threeFiveArray = [];
//prep your fizzes
for (i = 3; i < 100; i+=3){
threeArray.push(i);
}
//prep your buzzes
for (i = 5; i < 100; i+=5){
fiveArray.push(i);
}
//iterate through 0-99 to see if any of the numbers are in fizz, buzz, or both.
for (i = 0; i < 100; i++){
if(threeArray.includes(i) && fiveArray.includes(i)){
threeFiveArray.push(i + ' fizzbuzz');
} else if(threeArray.includes(i)){
threeFiveArray.push(i + ' fizz');
} else if(fiveArray.includes(i)){
threeFiveArray.push(i + ' buzz');
}
}
//return your results
console.log(threeFiveArray);