Switch deyimi genellikle, iç içe geçmiş if deyimlerinden daha verimlidir. Hangi deyimi seçmeniz gerektiğine aşağıdaki maddeleri inceleyerek karar verebilirsiniz.

Switch ile daha iyi Multi way branching;

Compiler, bir switch deyimini compile ederken, her bir case’ i inceleyecek ve bir jump table(zıplama tahtası) kuracaktır. Ve bu tabloyu da, ilgili case durumunda, çalıştırılacak kodun yolunu belirlemek için kullanacaktır. Eğer ki, çok fazla case olan bir kod parçası üzerinde çalışıyorsak, if-else if yapısından daha hızlı sonuç verecektir. Çünkü daha maç’ a başlamadan neyi nerede bulacağını bilir. Lakin if-else if gibi mantıksal kontrollerde bu durum o an’ a bağlı gerçekleşir.

Hız

Switch deyiminin çok fazla case olan durumlarda hız artışı sağladığını yazmıştık. Lakin 5 den az case varsa, if-else if ile arasında büyük bir fark gözlemlenmemektedir. Eğer case deyiminde 5 ten fazla case varsa, lookup table yada hashlist kullanacak şekilde implemente edilmiştir. Bu durumda, switch kullanımında her case’ e aynı anda erişim sağlanabilmektedir. Uzayıp giden if-else if’ de ise en sonuncu koşula erişebilmek için azımsanmayacak bir süre geçer.

Aynı zamanda switch kullanımının birbirine yakın case’ leri gruplarken daha okunabilir bir kod ortaya çıktığına dair görüşlerde bulunmaktadır.

Last modified: 9 June 2019

Author

Comments

Write a Reply or Comment

Your email address will not be published.