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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
147
(7): デフォルトの名無しさん [] 2024/02/17(土) 14:28:35.26 ID:M+9VD8BN(1/8) AAS
> A: 4の倍数の年は、うるう年
> B: ただし、100の倍数の年は、うるう年ではない(平年)
> C: ただし、400の倍数の年は、うるう年
> D: ただし30の倍数の年は、うるう年
> E: ただし、30と4の倍数の年はうるう年ではない
> F: D, Eは2025年より適用する

をC++で書いてg++でコンパイルしてみた。

外部リンク:godbolt.org

アセンブリ言語読めないけど色分けでC++とアセンブリ言語の対応を教えてくれるので助かる。Eの判定部分に対応するアセンブリ言語が出力されてないな。g++に無駄な判定であると判断されたか。

試しに、重複してる4の倍数判定を

E: ただし、30と7の倍数の年はうるう年ではない

に変えてみると

外部リンク:godbolt.org

今度はEの判定部分に対応するアセンブリ言語は出力されるようだ。g++がashworthより賢いことは分かった。
149
(1): デフォルトの名無しさん [] 2024/02/17(土) 16:46:24.50 ID:M+9VD8BN(2/8) AAS
早期returnしてインデント深くしないのが常に正しいと勘違いしてる馬鹿は最近よく見るよなあ。

外部リンク:godbolt.org

『リーダブルコード』の罪は深い。
151
(1): デフォルトの名無しさん [] 2024/02/17(土) 17:13:47.41 ID:M+9VD8BN(3/8) AAS
違うか。こうか。

外部リンク:godbolt.org

逆条件ややこしすぎ。

> C: ただし、400の倍数の年は、うるう年
> D: ただし30の倍数の年は、うるう年

↑の仕様バグもあるせいか早期return使って正しくコーディングできる自信おれにはないわ。
152
(1): デフォルトの名無しさん [] 2024/02/17(土) 17:17:43.96 ID:M+9VD8BN(4/8) AAS
>>148
148(2): デフォルトの名無しさん [] 2024/02/17(土) 15:27:34.58 ID:OA+DwSS4(1) AAS
今どきこんなコード書くやつマジでおるんやなw
ifのネスト盛り盛りで戻り値を上書きしながらsingle exit pointにしたコードとかきっついなぁ
>>150
150(2): デフォルトの名無しさん [] 2024/02/17(土) 17:13:23.14 ID:ZNQMOn+D(1) AAS
誰も早期リターンが常にいいとは言ってないんだけどな
大事なのは使い分け

>>147>>149は使い分けができてないから汚ないコードになっている
特に>>147のleapYear2025の使い方や2025の判定箇所がひどすぎる
の考える正解のコードに大期待。

コード晒せなかったらいつものashworthって思う外ないかな。
153: デフォルトの名無しさん [] 2024/02/17(土) 17:24:55.86 ID:M+9VD8BN(5/8) AAS
ashworth先生曰く

外部リンク:qiita.com
> まともな人はこういうコードを書きます。

> def isLeapYear(year):
>  if year % 400 == 0: return True
>  if year % 100 == 0: return False
>  if year % 4 == 0: return True
> return False

だそうだけどこのコードにどうやって

> 2022/4/28仕様変更
> D: ただし30の倍数の年は、うるう年
> E: ただし、30と4の倍数の年はうるう年ではない
> F: D, Eは2025年より適用する

を盛り込むのかその辺もお聞きしたい。
155: デフォルトの名無しさん [] 2024/02/17(土) 17:39:02.70 ID:M+9VD8BN(6/8) AAS
いま気づいたが>>147に投稿した
外部リンク:godbolt.org

>>151に投稿した
外部リンク:godbolt.org

で、g++が出力したアセンブリ言語の内容がぴったり一致してるのちょっと面白いw

>>151に投稿したコードに論理ミスはなかった感じでちょっと安心した。
157
(1): デフォルトの名無しさん [sage] 2024/02/17(土) 17:47:33.08 ID:M+9VD8BN(7/8) AAS
>>154
154(1): デフォルトの名無しさん [sage] 2024/02/17(土) 17:35:19.15 ID:g8yq3Dk9(2/2) AAS
そもそもそんな仕様変更起きないので考える必要がない
うるう年判定でも仕様変更を考慮すべきってのはashworth先生の主張なんだし
外部リンク:megalodon.jp ←の一番下のコメント参照

先生がお考えになる正解を教えて欲しいってのは当然のことでしょ。
159: デフォルトの名無しさん [] 2024/02/17(土) 18:02:50.60 ID:M+9VD8BN(8/8) AAS
>>148 >>150の考えるベターなコードに大期待。

コード晒せなかったらいつものashworthって思う外ないかな。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s