2017-12-04 7 views
-6
private String getString1(int n){ 

    if (n == 0) { 
     return "ZERO"; 
    } 
    if (n == 1) { 
     return "ONE"; 
    } 
    if(n == 2) { 
     return "TWO"; 
    } 
    return "-NA-"; 
} 

private String getString2(int n){ 

    if (n == 0) { 
     return "ZERO"; 
    } else if (n == 1) { 
     return "ONE"; 
    } else if(n == 2) { 
     return "TWO"; 
    } else 
     return "-NA-"; 
} 

私は上記のメソッドgetString1(int)とgetString2(int)を持っています。どちらも同じo/pを与えます。 しかし、どちらが最も効率的な使い方ですか?そこにパフォーマンスの期間の違いはありますか?return文を使用したjava if-elseのパフォーマンス

+4

いいえ、ありません。そのような些細なことのためにパフォーマンスについて心配するのをやめてください。一番読みやすいものを使用してください。 –

+0

['switch'文](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html)を代わりに使用してください。 – Jesper

+0

入力がゼロであれば、何回チェックを行う必要がありますか?他のすべての入力に対しても同様です。両方の例でこれを行うと、チェックの数が同じであることがわかるので、パフォーマンスは同じです。 – Michael

答えて

3

cpu時刻まで - 差異。コンパイラはおそらくそれらを同じバイトコードに正確に最適化します。

限り技術的負債を懸念している - とすぐに実際の開発者は、このコードを見て、でそれを置き換えるよう:

private static final String[] numbers = {"ZERO", "ONE", "TWO"}; 

private String getString(int n) { 
    return n >= 0 && n < numbers.length? numbers[n]:"-NA-"); 
} 

あなたは自分の会社のお金がかかりました。

関連する問題