Utasítás lehet: kifejezés, üres utasítás, szekvencia, összetett utasítás, elágazás, ciklus
A legtöbb utasítást le kell zárni egy utasítás lezáróval, ami a ";" karakter.
Értékadás, üres utasítás
Ha az utasítás elmarad, akkor üres utasításról beszélünk.
;
Értékadás:
Az értékadás szintén egy kifejezés, aminek az értéke a balodal új értéke. Értéket adni csak balértékeknek
lehet. (lásd a
Típusok, típuskonstrukciók c. fejezetet) Ennek szintaktikája a következő:
változónév = kifejezés ;
public int i, j = 10, k = i+j*2;
private const double d;
d = (double)i * 3.14;
Öszetett utasítás:
Kapcsos zárójelet közé írt utasítás.
int i, j;
if(1==1) {
i = 1;
j = 2;
}
Szekvencia
A szekvencia egyszerűen az utasítások egymásután írása, az utasítások egy listája.
public int i, j = 10, k = i+j*2;
private const double d;
d = (double)i * 3.14;
Elágazás
Egyszerű elagazás:
- if(logikai kifejezés) utasítás
- if(logikai kifejezés) utasítás else utasítás
Függő else probléma: mindig a legutolsó if-hez tartozik
int i = 0;
if(1==2)
i = 1;
else
if(2==2)
i = 2;
else
i = 3;
Összetett elágazás:
Fordítási időben ismert konstans kifejezés alapján lehet csak összetett utasítást készíteni. A különböző
ágak a kifejezés lehetséges értékei esetén hajtódnak végre. Lehetőség van tetszőleges érték esetén
végrehajtandó utasítássorozat megadására is, feltéve, ha egyik másik ág sem hajtódhat végre.
Szintaktikája:
switch(kifejezés) {
case érték1: utasítás
…
default: utasítás
}
Egy ág végrehajtásából a break utasítással lehet kilépni. Nem kötelező break-kel kilépni az ágból.
Így lehet több egymást követő esetet is összefogni egy kezelő résszel. Ezt akkor is megtehetjük, ha
nem hagyjuk üresen az utasítás részt.
int i = 0;
int j = 0;
switch(i) {
case 0: ++j;
case 1: j += 10; break;
case 2: j = 100;
default: j = 0;
}
Ciklus
Három féle ciklus van. Ebből kettő lényegében véve azonos, csak kényelmi szempontból különböznek.
While cilkus:
Utasítást csak akkor hajtja végre, ha a kifejezés igaz, különben SKIP-el egyenértékű
while(logikai kifejezés) utasítás
For ciklus:
for(kifejezés1; logikai kifejezés; kifejezés2) utasítás ;
Ezzel ekvivalens:
kifejezés1;
while(logikai kifejezés) {
utasítás;
kifejezés2;
}
Do-while cilkus:
Egyszer mindenféleképpen végrehajtja az utasítást
do utasítás while(logikai kifejezés);
Vezérlésátadó utasítások
Break:
Az aktuálisan végrehajtott blokkból lép ki. A vezérlés a következő utasításra adódik át.
Continue:
Ciklusmagban megszakítja a ciklusmag utasításainak a végrehajtását, a vezérlést a feltétel kiértékelésére
adja át.
for(int i=0; true; ++i) {
if(i>10) break;
if(i>5) continue:
System.out.println(i);
}