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.
|