Javascript作业(FizzBuzzWhizz)


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. 不是3、5、7的倍数,返回输入的数值。
  2. 是3、5、7的倍数,按要求返回字符串(Fizz、Buzz、Whizz、FizzBuzz、FizzWhizz、BuzzWhizz、FizzBuzzWhizz)

按照这两种情况可写一个测试程序判断是否可被3、5、7整除,若能则具体讨论,若不能就直接输出输入的数字。

function test(Num){
  if(Num%3==0||Num%5==0||Num%7==0){
    let result=run(Num);              //执行run()功能函数
    document.write('
'+result) } else{ document.write('
'+Num) } }

再具体讨论num是可被哪些数整除。
考虑到各种情况都是可3,5,7被整除即加上相应字符串,不可被其中的一个整除即不加,而且是按从3,5到7的顺序。所以只需讨论三种不同的情况即可。
先定义一个字符串变量

var n='';

如果num可被3整除,那么

if(num%3==0){
    n+="Fizz"     //n=n.concat("Fizz"),,+=和concat用法相似
  } 

同样的num可被5、7整除

  if(num%5==0){
    n+="Buzz";
    //n=n.concat("Buzz")
  }
  if(num%7==0){
    //n=n.concat("Whizz")
    n+="Whizz";
  }

最后返回字符串n即可


代码

function run(num){
    var n="";
  if(num%3==0){
    n+="Fizz";
  }
  if(num%5==0){
    n+="Buzz";
  }
  if(num%7==0){
    n+="Whizz";
  }
  return n.toString();
}

function test(Num){
  if(Num%3==0||Num%5==0||Num%7==0){
    let result=run(Num);
    document.write('
'+result) } else{ document.write('
'+Num) } } test(2) test(3) test(5) test(7) test(15) test(21) test(35) test(105)

测试结果
2
Fizz
Buzz
Whizz
FizzBuzz
FizzWhizz
BuzzWhizz
FizzBuzzWhizz

总结体会

  • 在开始编程之前考虑输入什么,要达到怎样的结果。
  • 再观察有输出字符串什么规律,怎样可以做到这样。
  • 有简单的思路之后再考虑是否可以再优化一下或者说更简单的方式。

你可能感兴趣的:(Javascript作业(FizzBuzzWhizz))