Fara í innihald

Switch-setning

Úr Wikipediu, frjálsa alfræðiritinu
(Endurbeint frá Switch)

Í 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.

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.

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# 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;
}