Artykuł

gru 09 2008
0

Instrukcje sterujące i pętle w Javie

Instrukcje sterujące i pętle są jednymi z najważniejszych elementów każdego języka programowania. W tym również oczywiście Javy. Wypada je znać każdemu, nawet nie szanującemu się programiście. Dlatego poświęcę cały artykuł aby przedstawić dwie kluczowe instrukcje sterujące: if i switch i trzy pętle: for, while i do...while.

Instrukcje sterujące

Instrukcja warunkowa If

If jest jedną z najpopularniejszych konstrukcji używanych w językach programowania. Posiada niezwykle prostą budowę, którą można zobaczyć na poniższym listingu:

if(warunek)
{
	// wykonaj akcje
}
else if(inny_warunek)
{
	// wykonaj inną akcję
}
else
{
	// wykonaj mnie, jeśli żaden inny warunek nie pasuje
}

Powyższy listing możemy podzielić na trzy elementy.
- W pierwszej części mamy główną część klauzuli If, która musi wystąpić zawsze. W okrągłym nawiasie podajemy warunek, kiedy mam wykonać określoną czynność, w nawiasach klamrowych umieszczamy kod odpowiedzialny za określoną czynność.
- W drugiej części występuje sytuacja alternatywna czyli klauzula else if. Klauzula else if, może występować wielokrotnie. Sekcja else if wykonuje się wtedy, kiedy warunki występujące przed tą sekcja nie są prawdziwe. Klauzula else if jest opcjonalna.
- Jeśli zawiodą wszystkie powyższe warunki zostaje klauzula else. Else wykonywany jest tylko wtedy, kiedy żaden z warunków nie jest spełniony. Klauzula else występuje opcjonalnie. Jeśli dana instrukcja If nie będzie posiadać takiej klauzuli, a warunki w niej zawarte nie zostaną spełnione, w takiej sytuacji po prostu nic się nie stanie.

Na poniższym listingu przykład instrukcji If:

int wiek;
wiek = 20;
if (wiek<14)
{
    System.out.print("Dziecko"); 
}
else if (wiek>=14 && wiek<18)
{
    System.out.print("Młodzież"); 
}
else 
{
    System.out.print("Dorosły"); 
}

Po wykonaniu tego kodu na ekranie wynikowym ujrzymy komunikat: Dorosły.

Instrukcja Switch

Czasem kiedy instrukcja If, zaczyna się zbyt mocno rozrastać (duża ilość klauzul else if), lub gdy operujemy na łańcuchach tekstowych, warto posłużyć się instrukcja switch. Strukturę instrukcji switch przedstawiono na poniższym listingu:

switch (zmienna) 
{ 
	case 'wariant pierwszy' : /*akcja1*/; break; 
	case 'wariant drugi' : /*akcja2*/; break; 
	default : /*akcja3*/; 
}

Instrukcja switch operuje na określonej zmiennej. Akcje wykonywane są w zależności od wartości tej zmiennej (linia 1). Każda akcja określona jest przez słowo kluczowe case i w jednej instrukcji Switch możemy wprowadzić dowolną ilość (linia 3,4). Po każdej z akcji, umieszczono tutaj słowo kluczowe break. Celem polecenia break jest przerwanie działania pętli jeśli jakaś instrukcja zostanie poprawnie dopasowana do zaistniałej sytuacji. W przeciwnym wypadku wykona się klauzula default, która znajduje się na końcu instrukcji Switch (linia 5). Na poniższym listingu przedstawiono przykład instrukcji Switch:

char znak;
znak = 'A';
switch (znak) 
{ 
	case 'A' : System.out.print('A'); break; 
	case 'B' : System.out.print('B'); break; 
	default : System.out.print('Nieznany znak'); 
}

Po wykonaniu powyższego kodu ujrzymy komunikat: A.

Pętle

Pętla For

Pętla for jest kluczową i pewnie najczęściej wykorzystywaną z pętli, posiada prostą i składną konstrukcję (patrz listing poniżej)

for(warunek_poczatkowy; warunek_koncowy; krok)
{
	// akcja wykonywana w pętli
}

For przyjmuje trzy argumenty:
- warunek_poczatkowy - ustawiamy początkową wartość zmiennej.
- warunek_koncowy - ustawiamy warunek na którym ma zakończyć się wykonywanie pętli.
- krok - jest to instrukcja modyfikująca wartość zmiennej, na której wykonywana jest pętla.
Na poniższym listingu przykładowa pętla for:

for(int licznik = 0; licznik < 10; licznik++)
{ 
    System.out.println("Licznik=" + licznik); 
}

W wyniku działania dostaniemy 10 wierszy zawierających frazę: Licznik=[kolejny_nr_licznika].

Pętla While

Pętla while jest kolejną użyteczną konstrukcją. Jej działanie jest bardzo proste. Jedynym parametrem jaki przekazujemy, jest warunek zakończenia pętli. Na poniższym listingu struktura pętli while:

while(warunek_konca)
{
	// instrukcja wykonywana w pętli
	// zmiana zmiennej użytej w warunku 
}

Bardzo ważną rzeczą jest, by zawsze wewnątrz pętli while zmienić zmienną użytą w warunku. Nieprawidłowa konstrukcja while może doprowadzić do utworzenia pętli nieskończonej. Poniżej prezentuję przykładowy listing z whilem:

int licznik = 0;
while(licznik < 25)
{
    System.out.println("Licznik=" + licznik); 
	licznik++;
}

W wyniku działania dostaniemy 25 wierszy zawierających frazę: Licznik=[kolejny_nr_licznika].

Pętla do... while

Instrukcja do...while jest zmodyfikowaną pętlą while. W wypadku klasycznej instrukcji while, gdy warunek umieszczony w pętli jest niespełniony, akcje umieszczone w pętli nie wykonają się nigdy. W instrukcji do...while akcja ZAWSZE wykona się przynajmniej raz. Struktura instrukcji do...while została przedstawiona na poniższym listingu:

do 
{
	// instrukcja wykonywana w pętli
	// zmiana zmiennej użytej w warunku 
} 
while(warunek_konca);

Poniżej przedstawiłem przykład pętli do...while:

int licznik = 50;
do 
{
    System.out.println("Licznik=" + licznik);
	licznik++;
} 
while(licznik < 25);

Powyższy kod wykona się tylko raz, ponieważ nie spełniamy warunku pętli do...while. Na ekranie zostanie wyświetlony komunikat Licznik=50.

Data ostatniej modyfikacji: 05.06.2011, 17:16.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus