Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.
W przeciwnym razie użycie jej jest zbyteczne.
Przykłady Instrukcje wyraż eniowe
int var;
// ...
var = 10; // przypisanie
42
var1 = var2 = 10; // przypisanie
var = System.in.read(); // przesłanie
System.in.read(); // przesłanie
System.out.println(var); // przesłanie
Instrukcja warunkowa
Instrukcja warunkowa ma postać
if( exp) InsT
albo
if( exp) InsT else InsF
w których exp jest wyrażeniem orzecznikowym, a InsT oraz InsF jest instrukcją.
Jeśli InsT jest instrukcją warunkową, to obowiązuje zasada, że każdej frazie else odpowiada najbliższa z lewej,
poprzedzajÄ…ca jÄ… fraza if.
W szczególności, instrukcja
if( exp1) if( exp2) Ins1 else Ins2
jest równoważna instrukcji
if( exp1) { if( exp2) Ins1 else Ins2 }
a nie instrukcji
if( exp1) { if( exp2) Ins1 } else Ins2
Wykonanie instrukcji warunkowej zaczyna się od wyznaczenia wartości wyrażenia exp. Jeśli wyrażenie ma
wartość true, to jest wykonywana instrukcja InsT, a w przeciwnym razie instrukcja InsF (o ile występuje). Po
wykonaniu tych czynności wykonanie instrukcji warunkowej uznaje się za zakończone.
Przykład Instrukcje warunkowe
if(var < 5 && var != 0)
System.out.println(var);
if(flag || var >= 5)
var = 0;
else
System.out.println(var);
if(var >= 0) {
if(var <= 9)
System.out.println(var);
} else
var = -1;
Instrukcja grupują ca została uż yta po to, aby przed frazą else nie wystą piła instrukcja grupują ca bez frazy else.
Gdyby pominię to nawiasy klamrowe, to rozpatrywana instrukcja przybrałaby postać
if(var >= 0)
if(var <= 9)
System.out.println(var);
else
var = -1;
równoważ ną
if(var >= 0) {
43
if(var <= 9)
System.out.println(var);
else
var = -1;
}
a zatem o istotnie róż nej semantyce.
Instrukcje pÄ™ tli
Instrukcje pętli umożliwiają cykliczne wykonywanie objętych nimi instrukcji. Instrukcja pętli powinna być
skonstruowana w taki sposób, aby istniała gwarancja zakończenia jej wykonywania.
Instrukcja while
Instrukcja while ma postać
while( exp) Ins
w której exp jest wyrażeniem orzecznikowym, a Ins jest instrukcją.
Wykonanie instrukcji while składa się z cyklicznego wykonywania następujących czynności
1. Opracowania i wyznaczenia wartości wyrażenia exp.
2. Jeśli wyrażenie expC ma wartość true, wykonania instrukcji Ins.
Jeśli wyrażenie ma wartość false, to wykonanie instrukcji while uznaje się za zakończone.
Uwaga: Jeśli pierwszą wartością exp jest false, to instrukcja Ins w ogóle nie będzie wykonana.
Przykład Instrukcja while
int val = 3;
while(val-- != 0)
System.out.println(val); // 2 1 0
Opracowanie wyraż enia
val-- != 0
ma skutek uboczny w postaci zmniejszenia wartoÅ› ci zmiennej val.
Dzię ki temu, po wykonaniu trzech obrotów pę tli, nastą pi zakoń czenie wykonywania instrukcji while.
Instrukcja for
Instrukcja for ma postać
for( Ins0 expC ; expI) Ins
w której Ins0 jest instrukcją wyrażeniową albo deklaracyjną, expC jest wyrażeniem orzecznikowym, expI jest wyrażeniem, a Ins jest instrukcją.
Wykonanie instrukcji for składa się z jednokrotnego wykonania instrukcji Ins0, a następnie z cyklicznego
wykonywania następujących czynności
1. Opracowania i wyznaczenia wartości wyrażenia expC.
44
2. Jeśli wyrażenie expC ma wartość true, wykonania instrukcji Ins oraz instrukcji wyrażeniowej
utworzonej z wyrażenia expI.
Jeśli wyrażenie expC ma wartość false, to wykonanie instrukcji for uznaje się za zakończone.
Uwaga: Warto odnotować, że wykonanie instrukcji
for( Ins0 expC ; expI)
Ins
ma na ogół taki sam skutek jak wykonanie instrukcji
Ins0
while( expC) {
Ins
expI;
}
Przykład Instrukcja for
for(int var = 0; var < 3 ; var++)
System.out.println(var); // 0 1 2
int var;
for(var = 3; var > 0 ; var--)
System.out.println(var); // 3 2 1
Instrukcja do
Instrukcja do ma postać
do
Ins
while( exp);
w której Ins jest instrukcją, a exp jest wyrażeniem orzecznikowym.
Wykonanie instrukcji do składa się z cyklicznego wykonywania następujących czynności
1. Wykonania instrukcji Ins.
2. Opracowania i wyznaczenia wartości wyrażenia exp.
3. Jeśli wyrażenie exp ma wartość true, ponownego wykonania podanych czynności.
Jeśli wyrażenie exp ma wartość false, to wykonanie instrukcji do uznaje się za zakończone.
Uwaga: Instrukcja Ins jest wykonywana co najmniej jeden raz.
Przykład Instrukcja do
int val = 3;
do
System.out.println(val); // 3 2 1 0
while(val-- != 0);
Ponieważ badanie warunku odbywa się dopiero po wykonaniu instrukcji zawartej mię dzy do i while, wię c liczba
"obrotów" pę tli do jest o 1 wię ksza niż liczba obrotów podobnej do niej instrukcji while.
Instrukcje zaniechania i kontynuowania
We wnętrzu pętli mogą być użyte instrukcje
45
break;
oraz
continue;
Wykonanie instrukcji zaniechania (break) powoduje zakończenie wykonywania pętli, natomiast wykonanie
instrukcji kontynuowania (continue) powoduje wykonanie takich czynności, jakby zakończyło się