黑珍珠號_陳祥梅
題目需求
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.為每一條需求寫一個測試。
TASKing分解圖
思路分析及代碼實現(xiàn)
需求如上圖所示可分為兩種情況:
- 輸入數(shù)字輸出原數(shù)字
- 輸入數(shù)字輸出指定字符串
處理函數(shù)流程圖如下:
處理函數(shù)代碼如下:
function run(num){
let result ='';
var flag=0;
if(num%3===0) {
result += 'Fizz';
flag=1;
}
if(num%5===0) {
result = result + 'Buzz';
flag=1;
}
if(num%7===0) {
result+='whizz';
flag=1;
}
if(flag===0){
return num.toString();
}
return result;
}
經(jīng)檢查變量flag不斷出現(xiàn)在不同if語句中扳炬,于是想到是否可以去掉標(biāo)志位變量flag吏颖。聯(lián)想到C語言中有三目預(yù)算符test?result1 :result2
,于是上網(wǎng)查找JS中類似的運算符。
優(yōu)化后的處理函數(shù)如下:
function run(num) {
let result ='';
if(num%3===0) {
result +='Fizz';
}
if(num%5===0) {
result=result+'Buzz';
}
if(num%7===0) {
result+='whizz';
}
return result||num;
}
測試結(jié)果如下: