小挑戰1:
創立名為isEvenNumber的method,接收名為number的int參數,回傳double。
判斷number是否為even,是的話回傳true,否的話false。
看到圖中用do的寫法
做了數字範圍內的偶數判斷
line 10 的意思是 如果( ! isEvenNumber) → ( ! true ) 意思是為flase,也就是奇數,那就continue。
意思是跳過剩下的步驟,也就是line 14,回到循環的開頭部份,進行新的循環。
continue是相對於break
簡單的說,如果滿足條件後
不想跳出就用continue
想跳出就用break
從字面上也好理解 就是 continue( 繼續 ) 、break( 中止 )
小挑戰1延伸:
優化上面代碼
把找到的偶數數字,相加計算出總和
並在找到5個偶數後break退出 並打印這些數字的總和
Digit Sum Challenge
創立名為sumDigits的method,接收名為number的int參數,回傳int。
如果number >=10 ,把每個數拆開相加,回傳總和。
例如:123 返回 1 + 2 + 3 = 6。
number 不是 >= 10 , 回傳 -1
Hint:使用 n% 10,n / 10。
小挑戰參考答案
小挑戰1
小挑戰1延伸
Digit Sum Challenge
P.S 這題我一開始是想說
取最前面數字,然後判定要乘幾個0
然後循環減去
像是123
取得1,然後判斷是百位數,得出 1 * 100
用123–100,剩下23
之後取2,判斷是十位數, 得出 2 * 10
用23–20,剩下3
結果整個卡住,不知道怎用代碼表現
卡在取得1
知道要 123 / 10 = 12 , 然後 12 / 10 = 1
這個要除10,2次
但如果換個數字123456,就不曉得要除幾次
有想到用count
但我用count+1方式去做,弄半天發現也不對
後來回去看題目
發現提示裡的%
我原本以為那是最後取個位數的時候用
突然醒悟過來
應該從後面開始取
就不用搞那麼多複雜的東西
從後面一個一個取
然後/10縮小數字
有了正確思路後
原本卡了1個多小時的題目
不到3分鐘就寫出來了