Podczas opracowywania systemu Android jest bardziej efektywny niż w łańcuchu if-else? Instrukcja switch pobiera więcej linii kodu, ale przeglądanie anegdotycznych danych wydaje się być częściej używane w aplikacjach systemu Android.W przypadku wydarzeń z Androidem, dlaczego instrukcje przełączników są częstsze niż w przypadku łańcuchów -inus?
Poniższe przykłady ilustrują tę samą konstrukcję programistyczną z instrukcją case i łańcuchem if-else. Instrukcja switch wymaga 10 linii, podczas gdy łańcuch if-else wymaga 7.
case
public void onClickWithSwitch(View v) {
switch(v.getId()) {
case R.id.buttonA:
buttonA();
break;
case R.id.buttonB:
buttonB();
break;
case R.id.buttonC:
buttonC();
}
}
if-else łańcuch
public void onClickWithIf(View v) {
int id = v.getId();
if(id == R.id.buttonA)
buttonA();
else if (id == R.id.buttonB)
buttonB();
else if (id == R.id.buttonC)
buttonC();
}
Dlaczego przełączyć być bardziej powszechne niż łańcuch if-else? Czy instrukcje przełączające oferują lepszą wydajność w porównaniu do łańcuchów if-else?
Zadajesz niewłaściwe pytanie. I oba są niewłaściwym rozwiązaniem w wielu przypadkach. – delnan
Wystarczy edytować tytuł. Ale nadal nie wiem na pewno, czy o tym mówisz. @delnan –
Zasadniczo przełącznik jest bardziej wydajny niż w przypadku. Również może być jaśniejsze pokazanie, że wszystkie porównania są przeciwko temu samemu "identyfikatorowi". Liczba linii kodu jest słabym wskaźnikiem skuteczności. (możesz umieścić cały program na jednym wierszu, ut nie pomoże;)) –