Js作业

题目:

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.为每一条需求写一个测试,测试例子请见实例方法 test1

代码:


/**
 * Created by Aya on 2017/3/29.
 */
function run(num) {
 if(num==3)
   return 'Fizz';
 if(num==5)
   return 'Buzz';
 if(num==7)
    return 'Whizz';
 if(num%3==0&&num%5==0){
    if(num%7==0)
         return 'FizzBuzzWhizz';
    else
     return 'FizzBuzz';
  }
  if(num%3==0&&num%7==0){
     if(num%5==0)
         return 'FizzBuzzWhizz';
     else
         return 'FizzWhizz';
  }
  if(num%5==0&&num%7==0){
      if(num%3==0)
          return 'FizzBuzzWhizz';
      else
          return 'BuzzWhizz';
  }
  else
      return result=num;
}

var test = function() {
  let result = run(4);  
  if(result == 'Fizz') {
        document.write('when run(3) return '+ '"'+result+'"')
  }
  //let result = run(5);    
  if(result == 'Buzz') {
      document.write('when run(5) return '+ '"'+result+'"')
  }
  if(result =='Whizz'){
        document.write('when run(7) return '+ '"'+result+'"')
  }
  if(result =='FizzBuzz'){
        document.write('when run(3*5) return '+ '"'+result+'"')
  }
  if(result =='FizzWhizz'){
        document.write('when run(3*7) return '+ '"'+result+'"')
  }
  if(result =='BuzzWhizz'){
        document.write('when run(5*7) return '+ '"'+result+'"')
  }
  if(result =='FizzBuzzWhizz'){
        document.write('when run(3*5*7) return '+ '"'+result+'"')
  }
  else
    document.write('when run ('+result+') return '+ result)
  
}
test()

总结:

这道题一上手就是想着按顺序做多个判断,每个判断都作测试,然后进行输出,测试结果也没有问题。
但是经过和组内的一些成员交流后发现其实这道题的可能性有很多,很灵活,而自己用的应该算是代码量最多思路最简单的一种,其实还可以使用定义数组将所显示的字符串进行存储,然后以是否输出该字符串作为判断标准,这样就只需要进行三次判断就可以了,几乎减少了一半的代码量。而在上传第一稿的时候看到王静同学用的方法,代码量几乎为我的三分之一,方法兼容性也很好,很受启发。

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