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 :)