Switch-setning
Í tölvuforritun, er Switch-setning skilyrðissetning notuð í flestum nútíma forritunarmálum (eins og C, C++, C# og Java). Tilgangur hennar er að leyfa gildi breytu eða segð að stjórna inningarröð forrita. Til eru setningar í öðrum forritunarmálum sem eru setningafræðilega öðruvísi en þjóna sama tilgangi hugtakslega og kallast þær case-setning eða select-setning.
Dæmi
[breyta | breyta frumkóða]Eftirfarandi eru dæmi um notkun Switch-setningunar. Ekki má gleyma að hafa break
þegar brjótast á út úr setningunni. Ef ekkert af case-setningunum tekur við skilyrðunum í switch() þá tekur default
skilyrðið við, ef það er til staðar í forritinu, en því má þó sleppa.
C
[breyta | breyta frumkóða]switch(n) { case 0: printf("Þú skrifaðir núll.\n"); break; case 3: case 5: case 7: printf("n er frumtala\n"); break; case 2: printf("n er frumtala\n"); case 4: case 6: case 8: printf("n er slétt tala\n"); break; case 1: case 9: printf("n er fullkominn þríhyrningur\n"); break; default: printf("Aðeins ein tala er leyfileg\n"); break; }
C#
[breyta | breyta frumkóða]C# notar staðlaða C-málfræði í setningunni og bætir við þeim eiginleika að nota „goto case“-setningu. Það er einnig hægt að nota strengi. Það er þó ekki leyfilegt að keyra alla setninguna í gegn þegar kóðinn er vistþýddur, því eru aðrar setningar notaðar (eins og break
eða goto
) til að koma í veg fyrir það.
ATHUGIÐ: Tómar case-setningar þurfa ekki að notast við goto-setninguna. Þær leyfa ekki gegnumkeyrslu í Switch-setningunni.
switch (HeiltöluBreyta) { case 0: goto case 1; // fer í case 1 case 1: return 1; // skilar ef HeiltöluBreyta er annaðhvort 0 eða 1 case 2: someInteger++; // bætir einum við HeiltöluBreyta og fer í case 3 goto case 3; case 3: EinhverAðgerð(); // framkvæmir aðgerðina EinhverAðgerð og brýst svo úr setningunni break; default: EinhverÖnnurAðgerð(); break; }