if blok böylece yöntemini bitirme döndürür Bu soru özellikle ilginç. Ayrıca Java çalışmalarında şekilde karşılaştırıcıya doğrudan uygulanır.
Ben böylece her yöntemi (feryat) 250.000.000 kez çalıştırmak ve şöyle sonuçlar:
two values if/else - 6.43 millis
three values if/else/if - 8.66 millis
three values if/if - 9.01 millis
Kötü durumda iyi bir do notice that this is the aggregate sum yineleme Bu yöntemlerin her biri 250 milyon kez daha 1,4 kat daha uzun sürer iken. Bu gecikme algıladıkları bir insan için 100ms almak ve kötü / iyi fark farklı yöntemleri arasındaki farkı idrak neredeyse bir trilyon (1000 * 1000 milyon) yineleme ihtiyacı olacağını ima eder 2.58 millis olduğunu varsayarak.
Summing it up: if-else bunu en hızlı seçenek de daha okunaklı ve daha az hata eğilimli olan biridir durumlarda biri kullanın.
// methods used to measure difference between if and if/else
/** equality is not important **/
private static int comparatorOfIfElse(int a, int b) {
if(a < b) return -1;
else return 1;
}
/** equality is taken into account using if/else **/
private static int comparatorOfIfElseIf(int a, int b) {
if(a < b) return -1;
else if(a > b) return 1;
return 0;
}
/** equality is taken into account using only if **/
private static int comparatorOfIf(int a, int b) {
if(a < b) return -1;
if(a > b) return 1;
return 0;
}