3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クソコードお焚き上げの会Advent Calendar 2023

Day 11

{}くらいつけようぜ?

Last updated at Posted at 2023-12-11

かっこがないと読めない!!

C言語だとif文の中身が一文の時にかっこをつけなくても良い。

if (x > 0)
    hoge();

今日これについて話します。

実際に遭遇した悪質な例

一瞬なんで動くのか脳がバグったコード。これ書く人きらい。条件式や中身は適当です。

if (x > 0)
    switch (x) {
        case 1:
            hoge();
            break;

        case 2:
            fuga();
            break;

        default:
            break;
    }

piyo();

switch文がぱっと見浮いてるように見えます。これはif文から見たらswitch文は一文に見える?ので動作はします。

if (x > 0)
    switch (x) {
        case 1:
            hoge();
            break;

        case 2:
            fuga();
            break;

        default:
            break;
    }
} //error!!!!!
piyo();

あれ?って思ってかっこを追加したくなりますが、これだと開きがないので動作しません。

実際に遭遇した悪質な例2

int x = 5;
int y = 8;
if (x > 0)
    if (y > 0) {
        x++;
        
        if (x > 3) {
            x++;
            y++;
        } else
            x++;
    }

samba();

これも同様で上位のif文から見たらif文は一文なので動作はします。でもマジで見にくいので本当に一文とはいえかっこをつけて欲しいです。

つけない心理

ちなみに1個目の例と2つ目の例のコード考えた人は同じです。マジで理解できないです。やめr

一旦寄り添ってみます。

  • タイピング時間を短縮できる
  • C言語の仕様を理解してるからかっこをつけなくていい場合がわかる自分に惚れてる

頑張って考えてみましたがこれしか思い浮かびませんでした。何か僕の知らないメリットがあればコメント欲しいです。でも10年プログラミングしてきてそんなシチュエーションは今のところないです。

私の結論

僕は基本的にかっこをつけるべきだと思います。

  • スコープの明確化
  • 見やすい(階層構造の明示)
  • メンテナンス性

かっこをつけるだけでこれだけのメリットを享受できます。

{一つ打つ時間なんて誤差なので、大幅な時間短縮につながるわけではないしちゃんとやはり打って欲しいです。

まとめ

括弧つけろ

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?