Documente Academic
Documente Profesional
Documente Cultură
int x = 5;
if(x==1)
System.out.println("x este unu");
else if(x==2)
System.out.println("x este doi");
else if(x==3)
System.out.println("x este trei");
else
System.out.println("x nu este nici unu, nici doi, nici
trei");
Însă, aceasta nu este neapărat cea mai bună şi cea mai bine vizibilă
soluţie pentru astfel de cazuri. În schimb, putem folosi comanda
Switch.
Comanda Switch
switch (variabil?) {
case value 1:
commands 1
break;
case value 2:
commands 2
break;
default:
commands 3;
}
int x = 5;
switch(x)
{
case 1:
System.out.println("x este unu");
break;
case 2:
System.out.println("x este doi");
break;
case 3:
System.out.println("x este trei");
break;
default:
System.out.println("x nu este nici unu, nici doi, nici
trei");
int a=1;
switch(a)
{
case 1:
System.out.println("a este unu");
case 2:
System.out.println("a este doi");
default:
System.out.println("a nu este nici unu, nici doi");
}
În Java, acest cod va face toate cele trei verificări ca rezultat, tocmai
pentru că nu există niciunde ieşirea din structură. Aceasta înseamnă
că partea subînţeleasă a oricărui bloc Case este comanda Break
(părăsirea necondiţionată a structurii).
String a="myValue";
switch(a)
{
case "myValue":
System.out.println("a este unu");
break;
}
int x = 4;
switch(x)
{
case 1:
System.out.println("x este unu, doi sau trei");
break;
case 2:
System.out.println("x este unu, doi sau trei");
break;
case 3:
System.out.println("x este unu, doi sau trei");
break;
default:
System.out.println("x nu este nici unu, nici doi, nici
trei");
break;
}
int x = 4;
switch(x)
{
case 1:
case 2:
case 3:
System.out.println("x este unu, doi sau trei");
break;
default:
System.out.println("x nu este nici unu, nici doi, nici
trei");
break;
}
Exerciţiu 1
Problemă:
//datele de intrare
int vehicleCode = 1;
int speed = 30;
String[] vehicle = { "camion","autobuz","automobil" };
Rezolvare 1:
//datele de intrare
int vehicleCode = 1;
int speed = 30;
String[] vehicle = { "camion","autobuz","automobil" };
if(vehicle[vehicleCode]!="automobil")
{
switch(speed)
{
case 10:
System.out.println("Viteza vehiculului este " +
vehicul[vehicleCode] + " este 10");
break;
case 20:
System.out.println("Viteza vehiculului este " +
vehicul[vehicleCode] + " este 20");
break;
case 30:
System.out.println("Viteza vehiculului este " +
vehicul[vehicleCode] + " este 30");
break;
default:
System.out.println("Viteza vehiculului este " +
vehicul[vehicleCode] + " nu este nici 10, nici 20 nici
30");
}
}
Rezolvare 2:
1. //datele de intrare
int vehicleCode = 1;
int speed = 31;
String[] vehicle = { "camion","autobuz","automobil" };
if(vehicle[vehicleCode]!="automobil")
{
switch(speed)
{
case 10:
case 20:
case 30:
System.out.println("Viteza vehiculului este " +
vehicul[vehicleCode] + " este " + speed);
break;
default:
System.out.println("Viteza vehiculului este " +
vehicul[vehicleCode] + " nu este nici 10, nici 20 nici
30");
}
}
Exerciţiu 2
Problemă:
//datele de intrare
int x = 523134;
int y = 325423;
Rezolvare:
//datele de intrare
int x = 523134;
int y = 325423;
int reminder = x%y;
switch(reminder)
{
case 0:
System.out.println("împ?r?ire f?r? rest");
break;
default:
if(reminder>1000)
a) break
b) default
c) exit
d) end
6. Ce se va întâmpla după interpretarea următoarei structuri
switch/case?
switch(stringMeu)
{
case "stringMeu":
System.out.println(stringMeu);
break;
default:
System.out.println("acest string nu este stringMeu");
break;
}
a) se va produce o eroare
b) Nu se va întâmpla nimic
c) se va emite mesajul "stringulMeu"
d) se va emite mesajul "acest string nu este stringulMeu"
7. Ce se va întâmpla după executarea următoarei structuri
switch/case?
switch(`A`)
{
case 65:
System.out.println("Litera este A");
break;
default:
System.out.println("Litera nu este A");
break;
}
a) se va emite mesajul "Litera este A"
b) se va emite mesajul "Litera nu este A"
c) se va produce o eroare
d) nu se va întâmpla nimic
case 65:
System.out.println("Litera este A");
break;
default:
System.out.println("Litera nu este A");
break;
}
a