Pętla FOR - przykład działania - sprawdzanie czy liczba n jest liczbą pierwszą
| DZIAŁANIE: | Liczba 5 jest liczbą pierwszą. |
Kod:

Ewentualne Objaśnienia:
Jest to skrypt PHP, w którym po raz kolejny pokazuje zastosowanie pętli i
znowu jest to pętla FOR. Za chwilę poznamy kolejne pętle dostępne w języku PHP.
Jak widać pierw napisany skrypt sprawdza czy czasem podana liczba w zmiennej $n
nie jest mniejsza od zera - używamy znowu instrukcji warunkowej if. Jeżeli
podana liczba jest mniejsza od 1 pokazuje się odpowiedni komunikat.
Następnie sprawdza czy czasem podana liczba nie jest równa liczbie 1. Jeśli tak
jest to znowu pojawia się odpowiedni komunikat sygnalizujący pewną
nieprawidłowość.
Jeśli oba te warunki są nieprawdziwe ( czyli generalnie podana liczba spełnia
warunek aby można było sprawdzić czy jest liczbą pierwszą ) to zmiennej
$pierwsza jest przypisywana wartość True ( czyli jakby jedynka logiczna, prawda
).
Dalej w tym przypadku mamy jak widać omówioną już pętle for. Jeśli
przeanalizujecie to widać wyraźnie, że pętla ta sprawdza dokładnie czy podana
liczba dzieli się przez liczby od 2 do wartości jej samej. Jeśli znajdzie się w
tym przedziale liczba przez którą nasza podana liczba się dzieli następuje
przypisanie zmiennej $pierwsza wartości False, czyli zera logicznego, nie prawdy
( fałszu). Pętla właściwie kończy swoje działanie. Dalej po zakończeniu pętli
zależnie czy wartość zmiennej $pierwsza jest 1 lub 0 ( True albo False) pojawia
się nam na ekranie odpowiedni komunikat o tym jaka dana liczba jest.
Nowością tutaj jest operator % ( modulo, reszta z dzielenia ). Jak to działa
?? To proste, za pomocą tego operatora łatwo sprawdzić czy dana liczba dzieli
się przez inną.
Np. :
- napiszemy sobie: 4%2. Jak wiadomo 4 przez 2 daje równa 2 bez żadnej reszty
;
- gdy np. damy 5%3 - wiadomo, że pięć się nie dzieli przez 3, więc jest jakaś
reszta ;
Więc jeśli damy przykładową instrukcję :
- if ($zmienna%$innazmienna) - jeżeli liczba zawarta w zmiennej $zmienna dzieli
się bez reszty przez liczbę zawartą w zmiennej $innazmienna to warunek
instrukcji if jest spełniony, jest prawdziwy i wykonywane są jego jakieś
instrukcje.
Warto tutaj wspomnieć o pewnej rzeczy:
Jeśli dobrze zrozumiałeś podany kod to widzisz, że jest jedna niepotrzebna
rzecz! Mianowicie mimo iż jest już wiadomo, że dana liczba nie jest liczbą
pierwszą to pętla wykonuje się nadal aż zmienna $i osiągnie wartość n-1.
Należałoby więc zmienić kod tak aby od razu po ustawieniu zmiennej $pierwsza na
False w pętli , pętla zatrzymywała się ( kończyła swoje działanie ) i nastąpiło
przejście do kolejnych instrukcji.
Jak to zrobić ? to bardzo proste !!
Służy do tego komenda: break
Więc po prostu dopisujemy w pętli w instrukcji warunkowej if tą
komendę czyli :
if ($n % $i ==0)
{
$pierwsza = False;
break;
}
Myślę, że w miarę czytelnie to wyjaśniłem :)