Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Stosowność używania instrukcji wyboru switch

Ostatnio zmodyfikowano 2015-06-27 16:04
Autor Wiadomość
Patrycjerz
Temat założony przez niniejszego użytkownika
Stosowność używania instrukcji wyboru switch
» 2015-06-19 19:42:45
Witam,

z programowaniem jestem związany stosunkowo niedługo, bo około dwa lata. Mam pytanie do specjalistów większych ode mnie. Czy instrukcja switch jest dziś częściej używana, niż zbiór instrukcji if (else)? Chodzi o to, jakie mają zwyczaje zawodowi programiści? Który sposób jest szybszy i sprawniejszy w wykonaniu? Pytam dlatego, ponieważ raz nauczyciel od informatyki powiedział mi, że instrukcja switch jest praktycznie dzisiaj w ogóle nie używana. Więc "jak to z tym jest?" :)
P-133814
pekfos
» 2015-06-19 20:29:24
switch nie jest równoznaczne z ciągiem if else (nawet, gdy robi to samo) i ma znacznie bardziej ograniczone zastosowanie, ale to nie znaczy, że nie jest używane. Używa się wtedy, gdy jest jedna wartość do porównania z szeregiem stałych całkowitoliczbowych. Jest to ważny przypadek, ale nie należy do najczęstszych, przez co bywa, że 'nauczyciele informatyki' nigdy się z nimi nie spotykają w praktyce i narzekają, że jest w języku bezużyteczna konstrukcja ;)
P-133815
michal11
» 2015-06-19 23:46:50
Ja często używam switcha przy enumach i jak musze porównać jakąś zmienną z szeregiem stałych
P-133818
libed
» 2015-06-22 16:11:10
Switch umożliwia też fajną, lecz rzadko stosowaną konstrukcję "switch fall through" czyli umyślne pominięcie break, takie coś w stylu znienawidzonego goto ;) np.
C/C++
switch( wybor ) {
case 1:
    puts( "Najpierw wykonamy instrukcje dla bloku 1 i automatycznie skaczemy do bloku 2" );
case 2:
    puts( "Tutaj tylko instrukcje dla bloku 2 " );
    break;
    default:
    puts( "Domyslne instrukcje" );
}

Jeśli wybor == 1 to wykona się blok 1 oraz blok 2, natomiast jeśli wybor == 2 to wykona się tylko blok 2.
P-133928
Patrycjerz
Temat założony przez niniejszego użytkownika
» 2015-06-27 16:04:37
Dzięki za odpowiedzi, jednak zacznę używać instrukcji switch :) Widziałem test, w której jest ona minimalnie szybsza od ciągu instrukcji if. Jakby nie patrzeć, każdy robi jak mu wygodniej.
P-134116
« 1 »
  Strona 1 z 1