Javascript-FizzBuzzWhizz

作者: TW_羊咩咩_伍文杰 | 来源:发表于2017-03-28 18:20 被阅读23次

    本课题要求:

    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'


    由此可知,本课题要求在特殊条件下更改程序的返回值。由于js语言进行字符串操作的简易性,不难想到利用此特性来对参数做相应修改。而是否满足相应条件则可通过if语句来判断。


    主要代码(附注释):
    function run(num) { var f=0,b=0,w=0; //定义用于判断的变量f,b,w if(num%3==0) f=1; if(num%5==0) b=1; if(num%7==0) w=1; //根据参数num满足的条件改动变量f,b,w的值 if(f==1||b==1||w==1)//如果不满足以上任一条件,则不对参数num本身作任何改动 { num='';//先使num成为空字符串 if(f) num +='Fizz'; if(b) num +='Buzz'; if(w) num +='Whizz'; //依据f,b,w的值对num作相应修改 } return num.toString(); }


    调试结果:


    result

    完整代码:
    function run(num) { var f=0,b=0,w=0; if(num%3==0) f=1; if(num%5==0) b=1; if(num%7==0) w=1; if(f==1||b==1||w==1) { num=''; if(f) num +='Fizz'; if(b) num +='Buzz'; if(w) num +='Whizz'; } return num.toString(); } document.write('') var test1 = function() { let result = run(2); if(result != 2) { document.write('The test 1 failed') }else { document.write('The test 1 result is : '+ result) } } test1() document.write("<br>") var test2 = function() { let result = run(3); if(result != 'Fizz') { document.write('The test 2 failed') }else { document.write('The test 2 result is : '+ result) } } test2() document.write("<br>") var test3 = function() { let result = run(5); if(result != 'Buzz') { document.write('The test 3 failed') }else { document.write('The test 3 result is : '+ result) } } test3() document.write("<br>") var test4 = function() { let result = run(7); if(result != 'Whizz') { document.write('The test 4 failed') }else { document.write('The test 4 result is : '+ result) } } test4() document.write("<br>") var test5 = function() { let result = run(35); if(result != 'BuzzWhizz') { document.write('The test 5 failed') }else { document.write('The test 5 result is : '+ result) } } test5() document.write("<br>") var test6 = function() { let result = run(15); if(result != 'FizzBuzz') { document.write('The test 6 failed') }else { document.write('The test 6 result is : '+ result) } } test6() document.write("<br>") var test7 = function() { let result = run(21); if(result != 'FizzWhizz') { document.write('The test 7 failed') }else { document.write('The test 7 result is : '+ result) } } test7() document.write("<br>") var test8 = function() { let result = run(105); if(result != 'FizzBuzzWhizz') { document.write('The test 8 failed') }else { document.write('The test 8 result is : '+ result) } } test8()


    相关文章

      网友评论

      • 李浪溪_WaterLee:Well
        * 解题思路新颖
        Can Improve
        * 用更好的命名,消除代码注释
      • TW_BBK_李江:优点:常注释的编程习惯很好
        can improve:测试函数写一个就能测试所有是不是会更高效呢?除了of else 语句,或许还有更高效的方法哦,试一试吧
      • 棒子酥:优点
        逻辑简单,判断代码很棒棒
        可改进
        测试的数据和报错的可以精简
      • FriendSaber:文章结构层次不够清晰。分析较少,可复用性不高,代码有点冗长。但是对JS有所分析。思维有拓展很不错
      • 苦寒行:well:
        1.排版别出心裁,将比较重要的部分放在了显眼的位置
        2.思路分析合理明确
        can improve
        1.字符串用num命名有点别扭
        2.可以用一点要求之外的测试用例进行测试
      • __已注销__:验证结果正确,实现了要求中的功能,代码添加了详细注释。
        可适当添加个人心得体会,比如说代码的优化过程及主要思路

      本文标题:Javascript-FizzBuzzWhizz

      本文链接:https://www.haomeiwen.com/subject/ymxsottx.html