if入れ子の連続は好きになれない

他人のソースを見ていて、自分とは反りが合わないなぁと思う箇所があったので記しておきます。

コード例

まずは該当するコードを見てみてください。

他人のコード

public void TestMethod(){
	if(this.testField.Length != 0){
		if(this.testX != 0 && this.testY != 0){
			if(this.name.Length != 0){
				/* 何らかの処理 */
			}
		}
	}
}

修正案

public void TestMethod(){
	if(this.testField == string.Empty){
		return;
	}
	if(this.testX == 0 || this.testY == 0){
		return;
	}
	if(this.name == string.Empty){
		return;
	}
	
	/* 何らかの処理 */
}

趣味

関数やメソッド内で値のチェックをして正常範囲ならば、何か対応する処理を行うという場合が結構多かったりします。上記の例は極例に当たりますが、誰もが本質的に似たような処理は書くかと思います。

その際に、条件が成立しない時についてのif内でreturn;などをする書き方が個人的に好きです。ifififififと入れ子が続くのは、確かに処理の流れ的に自然ではありますが、見通しが悪くなると感じるのです。更に、修正案の書き方であれば、何が原因で処理をせずに抜けるのかということについてコメントを書くスペースも出来ています。

stringの空値チェック

これも個人的な好き嫌いの話になります。上記のソースはC#なんですが、stringの空値チェックだと、私は後者が好きですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください