Perl/Instrukcja kontrolna if
Instrukcja if jest najważniejszą strukturą warunkową w Perlu. Składnia jest taka jak pokazano niżej:
if (wyrażenie logiczne) { instrukcje }
Jeśli wyrażenie logiczne jest prawdziwe, instrukcje zawarte między nawiasami klamrowymi zostaną wykonane. Wyrażenie logiczne może zawierać dowolne operatory porównania opisane wcześniej. Może także zawierać operatory logiczne. Na przykład:
if (($x < -10) || (($x > 0)&&($x < 10))){ print "x jest mniejsze niż -10 lub jest ściśle zawarte między 0 a 10.\n"; }
Instrukcje warunkowe mogą także zostać rozszerzone poprzez struktury elsif i else:
if (wyrażenie logiczne 1) { instrukcje 1 } elsif (wyrażenie logiczne 2) { instrukcje 2 } else { instrukcje 3 }
Działa to następująco. Program po kolei sprawdza wszystkie wyrażenia logiczne. Jeżeli któreś z nich zwróci wartość prawdziwą zostaną wykonane instrukcje zawarte w odpowiednim bloku po czym program wyjdzie z instrukcji warunkowej if. Jeżeli wszystkie wyrażenia zwrócą wartość fałszywą zostanie wykonany blok else.
$x = 5; if ($x > 10) { print "$x jest większe od 10\n"; } elsif ($x > 2) { print "$x jest większe od 2\n"; } elsif ($x == 5) { print "$x jest równe 5\n"; } else { print 'Nie wiem ile wynosi $x', "\n"; }
Powyższy program wyświetli napis "5 jest większe od 2" i zakończy działanie. Dzieje się tak dlatego, że perla nie obchodzi czy wyrażenia dalej też spełniają warunek.
Uwaga! W przeciwieństwie np. do języka C w Perlu instrukcja nie może występować bezpośrednio po warunku - musi znajdować się wewnątrz nawiasów klamrowych. Na przykład poniższy kod zostanie uznany za nieprawidłowy:
if ($x < -10) print "x jest mniejsze niż -10"; # blad!
Można też użyć zamiast if słowa kluczowego unless - znaczy tyle, co if z zaprzeczeniem. Tak więc kod
unless (wyrażenie logiczne) { instrukcja }
jest równoważny
if ( !(wyrażenie logiczne) ) { instrukcja }
Po unless można oczywiście używać elsif i else tak jak w normalnym if.
Spróbuj napisać program, który pobiera jedną liczbę od użytkownika i mówi czy jest ona parzysta.
|