[過去ログ] Qiita 4 - キータぞ、来たぞ、キータだぞー (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
305: デフォルトの名無しさん [] 2024/03/03(日) 13:38:29.39 ID:korTDzLq(1/5) AAS
> 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。

仕様に沿った形というとこういうコードだよなあ。

def is_leap_year(year):
 leap_year = False
 # A: 4の倍数ならばうるう年
 if year % 4 == 0:
  leap_year = True
  # B: 100の倍数ならば平年
  if year % 100 == 0:
   leap_year = False
   # C: 400の倍数ならばうるう年
   if year % 400 == 0:
    leap_year = True
 return leap_year

仕様変更に対応し易いという点では優れてるかな。うるう年判定にそれが必要かは疑問ではあるが。
306: デフォルトの名無しさん [] 2024/03/03(日) 13:40:04.83 ID:korTDzLq(2/5) AAS
『リーダブルコード』に洗脳されたのかナントカの一つ覚えよろしく早期リターンを勧める人Qiitaでは見掛けるけど仕様からは逸脱しちゃうんで「仕様に沿った形でコード書かないと」という主張的にはナシだろうな。

def is_leap_year(year):
 # 4の倍数でないなら平年
 if year % 4 != 0:
  return False
 # 4の倍数で100の倍数でないならうるう年
 if year % 100 != 0:
  return True
 # 4の倍数で100の倍数で400の倍数でないなら平年
 if year % 400 != 0:
  return False
 # 4の倍数で100の倍数で400の倍数ならうるう年
 return True
307: デフォルトの名無しさん [] 2024/03/03(日) 14:21:08.84 ID:korTDzLq(3/5) AAS
https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd#comment-1dd48f5238d4a2c96c3c
> 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。

おいおいashworth、「ただし」どこやった?
「仕様に沿った形でコード書かないと」ってどの口で言ってる?

https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd
> うるう年と判定する条件は、以下のとおりである。
> A: 4の倍数の年は、うるう年
> B: ただし、100の倍数の年は、うるう年ではない(平年)
> C: ただし、400の倍数の年は、うるう年
308
(1): デフォルトの名無しさん [] 2024/03/03(日) 14:31:47.57 ID:korTDzLq(4/5) AAS
「ただし」がないとインデントは浅くできる。

def is_leap_year(year):
 leap_year = False
 # A: 4の倍数ならばうるう年
 if year % 4 == 0:
  leap_year = True
 # B: 100の倍数ならば平年
 if year % 100 == 0:
  leap_year = False
 # C: 400の倍数ならばうるう年
 if year % 400 == 0:
  leap_year = True
 return leap_year

「ただし」のありなしは仕様にある「4」「100」「400」の値が変われば結果に影響するのでこの点は重要。
316
(1): デフォルトの名無しさん [sage] 2024/03/03(日) 22:44:59.76 ID:korTDzLq(5/5) AAS
>>315
107374182500年は平年? 閏年?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s