作業(yè)要求及代碼
/*
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'
作業(yè)要求:
1.通過document.write()方法,將以上需求的每一條調用結果打印出來,結果會在屏幕右邊顯示
2.為每一條需求寫一個測試,測試例子請見實例方法 test1
*/
function run(num) {
if (num == 3){
return 'Fizz';
}
else if (num == 5){
return 'Buzz'
}
else if (num == 7){
return 'Whizz'
}
else if (num % 3 == 0 && num % 5 == 0 && num % 7 == 0){
return 'FizzBuzzWhizz'
}
else if (num % 3 == 0 && num % 5 == 0){
return 'FizzBuzz'
}
else if (num % 3 == 0 && num % 7 == 0){
return 'FizzWhizz'
}
else if (num % 5 == 0 && num % 7 == 0){
return 'BuzzWhizz'
}
else{
return num.toString();
}
}
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()
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()
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()
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()
var test5 = function(){
let result = run(15);
if(result != 'FizzBuzz'){
document.write('The test 5 failed')
}
else{
document.write('The test 5 result is : ' + result)
}
}
test5()
var test6 = function(){
let result = run(21);
if(result != 'FizzWhizz'){
document.write('The test 6 failed')
}
else{
document.write('The test 6 result is : ' + result)
}
}
test6()
var test7 = function(){
let result = run(35);
if(result != 'BuzzWhizz'){
document.write('The test 7 failed')
}
else{
document.write('The test 7 result is : ' + result)
}
}
test7()
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()
出現的問題:
第一次用js寫代碼,找了不少例子來看,而且不太熟悉jsfiddle的run方法,寫test3的時候沒有運行,當時還找了很久,才發(fā)現是test2里的write寫錯了,導致異常退出。
解題方法:
我先根據題目給的幾種情況,寫出了測試和簡單的run函數,編譯通過,之后調整run函數中判斷的位置,可以讓測試數據變化之后正常輸出,先判斷是否為3,5,7三個數,之后判斷是否為三個數的公倍數,再判斷是否為其中兩個數的公倍數,最后else返回原數
心得與收獲
1.接觸一個編譯器,一定要先看使用方法,不要直接上代碼
2.了解了用js寫一個小程序的大致方法