ネストが深いプログラム

■はじめに

こんにちは東京アプリケーションシステムのH.Sです。
今回のブログはネストについてお話したいと思います。

■ネストが深いとは

まずネストとは、制御文の中にさらに制御文が重なっているものを指します。
※今回の記事では制御文としてif文を使用してきます。

例1)

例1はif文の内容が短く、処理も簡単ものです。
ですが、実際にプログラムを作成していくとif文の内容が長くなり、処理も複雑になってきます。
このif文の中にif文が重なるものがどんどん増えていくことを「ネストが深い」と表現します。

例2)

例2は例1よりもネストが深いものになっています。
やりたいことはコンソールに書き込んで、表示するだけなので簡単です。

簡単な処理ですが、例1と例2を見比べると例2が「分かりにくい」と思います。
何をしたいのかぱっと見たときの条件の判定が分かりにくいので、「この処理は○○で…」
といった感じで解析に時間がかかってしまいます。

ネストが深くなるにつれて、人が見たときに
「分かりにくい」、「読みにくい」、「解析に時間がかかる」
と良いことがほとんどありません。

■ネストを減らすには

方法はいろいろありますが、今回は以下の方法を意識して書き換えています。
1.不要なものを省く。
2.なるべく同じ階層で処理する。

例3)

不必要なネストを整理し、同じ階層で処理をするように修正しました。
例2と比べてると少しは、ぱっと見たとき分かりやすいものになったかなと思います。

■ネストをすることが悪いことなのか

ネストは悪いことだとは思いません。
プログラムの中にはネストをしなければならない処理もあると思います。
大事なことは深いネストを減らすことです。

例えば私自身がネストをについて心掛けている事は、ネストを2~3個にするという事です。
理由としては、それ以上になると私自身が分かりにくくなり、作業スピードが落ちたしまったことがあるからです。
人それぞれに書き方があると思いますが、一番大事なのは、自分以外の誰かが
ソースコードを見たときに、わかりやすいものであるという事です。

■最後に

今回はネストについての内容でした。
人が見たとき分かりやすくする方法はネスト以外にも色々あります。調べてみると面白いですよ。
記事をご覧いただきありがとうございました。