1.問題引入
FizzBuzzWhizz 需求:
when run(3) return 'Fizz'
when run(5) return 'Buzz'
when run(7) return 'Whizz'
when run(3 * 5) return 'FizzBuzz'? //run 的參數(shù)為 3和5共同的倍數(shù)
when run(3 * 7) return 'FizzWhizz'? //run 的參數(shù)為 3和7共同的倍數(shù)
when run(5 * 7) return 'BuzzWhizz'? //run 的參數(shù)為 5和7共同的倍數(shù)
when run(3 * 5 * 7) return 'FizzBuzzWhizz'? //run 的參數(shù)為 3、5和7共同的倍數(shù)
其余情況:
when run(n) return n? // n 可以為 非 3、5、 7或3、5、7的倍數(shù)的數(shù)字 如:run(2) return '2'
作業(yè)要求:
1.通過document.write()方法,將以上需求的每一條調(diào)用結(jié)果打印出來,結(jié)果會在屏幕右邊顯示
2.為每一條需求寫一個測試
2.轉(zhuǎn)化成自己的語言
傳遞一個數(shù)num,返回一個值
當num=3,輸出顯示 Fizz
? num=5,輸出顯示Buzz
? .......
num為幾個數(shù)的倍數(shù)(暫考慮3,5,7)時,輸出這幾個數(shù)單獨存在時的輸出組合。
如num=3*5;輸出FizzBuzz。除此以外,輸出輸入的數(shù)值。
3.思路
? ? ? 典型的“如果就”事件。在相應的可能情況出現(xiàn)相應的結(jié)果。一開始想到if{}else語句,雖然思路簡單,但并沒有多少簡潔之處。會有很多重情況。又看到公倍數(shù)的結(jié)果是各自倍數(shù)的“疊加”,所以想到分開拼接為好。
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.運行結(jié)果

6.個人感悟
? ? ? ??題目實現(xiàn)的目的很簡單。但方法肯定多種多樣。自己也試了很多種方法,最后覺得提交的還算簡潔。但在如何靈活地用更好的編程思維來快速實現(xiàn)目標,讓代碼更簡潔、高效。還需要不懈的努力。