2017-07-14 3 views
0

どのように私は同じ値をチェックするために多くのifsの複雑さを減らすことができます、私は自分のコードをきれいにしようとしていると私はこの場合非常に複雑に直面!!
P.それ以外の場合は例外をスローするifs!このケースの複雑さをどのように減らすことができますか?

void function(String text){ 
    if(text==null) 
    throw new exception(); 
    if(text.isEmpty()) 
    throw new Exception(); 
    if(text=="test") 
    throw new Exception(); 
    ..... } 
+2

「コードのクリーンアップが参照しますメモリやファイルシステムから残ったデータ構造やその他の不要なデータを消去するようにコードを書く行為**リファクタリングのコードと同じではなく、ソースコードそのものの理解、維持、変更を容易にする* * "[codereview.se]はその通りです。< - – Will

+0

I guこれはJavaです。 C#にはString.IsNullOrEmpty(s)があります。あなたは同様の関数を作ることができます – pm100

答えて

0

場合、私は同じif文では、これらの「OR」で区切られた条件と終了機能をチェックします異なっています。しかし、あなたが使用している言語がわからないので、null/isemptyチェックを単純化することができます: "isNullOrEmpty()in C#"、さらにtest = "test"の文字列比較を使用する必要があります。

ベストは、必要がない限り例外をスローしないことです。

if (string.IsNullOrEmpty(text)) 
{ 
    throw new Exception(); 
} 

するか、textがnullまたは空でないときにのみ実行するコードをしたい場合、あなたはこれを行うことができます:

+0

ありがとうございます。私はあなたのurアドバイスを使用すると思います –

0

テキストがヌルまたは空の場合は例外をスローする必要はなく、機能を終了することができます。例外をスローするにはコストがかかります。あなたは彼ら以来、これらのケースを削除することはできません

if(test==null || text.isEmpty() || test="test" == 0) 
{ 
    throw new Exception(); 
} 

:各条件は同じことをやっているので、あなたがそれらを持つことができ、真の

+0

はい、私はjUnitを使ってテストケースを書くので、私は自分のコードのすべての行をテストしなければなりません。 –

+0

チェックヌルと空を無視する必要がありますか? –

+1

複雑さはどの程度正確に感じられますか? –

0

あなたはこれを行うことができます

if (!string.IsNullOrEmpty(text)) 
{ 
    // do something 
} 
関連する問題