1.问题引入
FizzBuzzWhizz 需求:
when run(3) return 'Fizz'
when run(5) return 'Buzz'
when run(7) return 'Whizz'
when run(3 * 5) return 'FizzBuzz' //run 的参数为 3和5共同的倍数
when run(3 * 7) return 'FizzWhizz' //run 的参数为 3和7共同的倍数
when run(5 * 7) return 'BuzzWhizz' //run 的参数为 5和7共同的倍数
when run(3 * 5 * 7) return 'FizzBuzzWhizz' //run 的参数为 3、5和7共同的倍数
其余情况:
when run(n) return n // n 可以为 非 3、5、 7或3、5、7的倍数的数字 如:run(2) return '2'
作业要求:
1.通过document.write()方法,将以上需求的每一条调用结果打印出来,结果会在屏幕右边显示
2.为每一条需求写一个测试
2.转化成自己的语言
传递一个数num,返回一个值
当num=3,输出显示 Fizz
num=5,输出显示Buzz
.......
num为几个数的倍数(暂考虑3,5,7)时,输出这几个数单独存在时的输出组合。
如num=3*5;输出FizzBuzz。除此以外,输出输入的数值。
3.思路
典型的“如果就”事件。在相应的可能情况出现相应的结果。一开始想到if{}else语句,虽然思路简单,但并没有多少简洁之处。会有很多重情况。又看到公倍数的结果是各自倍数的“叠加”,所以想到分开拼接为好。
4.代码
var test=function (num) {
var a=(num%3==0) ? 'Fizz' : ' ';
var b=(num%5==0)? 'Buzz' : ' ';
var c=(num%7==0)? 'Whizz' :' ';
if((a==0)&&(b==0)&&(c==0))
document.write(num);
else
{document.write(a+b+c);}
document.write("<br>");
}
test(3);
test(5);
test(7);
test(105);
test(3*7);
test(42);
test(11);
5.运行结果
6.个人感悟
题目实现的目的很简单。但方法肯定多种多样。自己也试了很多种方法,最后觉得提交的还算简洁。但在如何灵活地用更好的编程思维来快速实现目标,让代码更简洁、高效。还需要不懈的努力。