Sunteți pe pagina 1din 2

Instrucțiunea switch

Precum ştim instrucţiunea if implementează structura alternativă. Uneori avem nevoie de decizii multiple,
de exemplu cînd vrem să ştim dacă o variabilă are valoarea 1, 2 sau 3. În aceste cazuri putem folosi o
combinaţie de instrucţiuni if:

if ( n == 1 ) {
cod pentru cazul 1;
} else if ( n == 2 ) {
cod pentru cazul 2;
} else if ( n == 3 ) {
cod pentru cazul 3;
}

Deoarece situaţiile cînd vrem să executăm diverse acţiuni în funcţie de valoarea unei variabile limbajul C se
oferă instrucţiunea switch a cărei formă este:

switch ( n ) {
case constantă1:
cod de executat dacă n este egal cu constantă1;
break;
case constantă2:
cod de executat dacă n este egal cu constantă2;
break;
.
.
.
default:
cod de executat dacă n nu este egal cu nici una din constante;
}

Exemplu: se citesc pe aceeaşi linie, în ordine, un caracter şi apoi două numere întregi, toate separate
printr-un spaţiu. Dacă caracterul este una din operaţiile +, -, * sau / să se afişeze rezultatul acelei operaţii
pe cele două numere. În caz contrar să se afişeze cuvîntul eroare.

Input Output

+ 12
203
191

* 12 11 132

% 20 8 eroare

Rezolvare:

#include <stdio.h>

int main() {
int a, b;
char ch;
ch = fgetc( stdin );
scanf( "%d%d", &a, &b );
switch ( ch ) {
case '+':
printf( "%d\n", a + b );
break;
case '-':
printf( "%d\n", a - b );
break;
case '*':
printf( "%d\n", a * b );
break;
case '/':
printf( "%d\n", a / b );
break;
default:
printf( "eroare\n" );
}
return 0;
}

De menţionat că nu este obligatoriu să avem o variabilă testată în switch, putem avea o expresie, cu
condiţia ca ea să aibă o valoare întreagă, nu reală.

S-ar putea să vă placă și