• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Proszę o wytłumaczenie konstrukcji.

0 głosów
104 wizyt
pytanie zadane 25 listopada 2017 w PHP, Symfony, Zend przez pawelwch Użytkownik (860 p.)

Witam. Mogłby mi ktos wytłumaczyć ponizsza konstrukcje?


Z mojej obserwacji jest to rodzaj pewnego odliczania( petla while). Nie moge do konca rozszyfrowac tego wiersza z IF... Mogłby ktos "przełożyc na język polski" ;)

3 odpowiedzi

+2 głosów
odpowiedź 25 listopada 2017 przez Kamil Łydka Dyskutant (7,580 p.)
edycja 25 listopada 2017 przez Kamil Łydka

Zapoznaj się z operatorem modulo. Ogólnie służy on do wyznaczania reszty.

if ( ($liczba %2) == 0){
 echo "liczba jest parzysta"; 
}

Bo jeśli coś podzielimy przez 2 i reszta wynosi 0, to znaczy że liczba jest parzysta. Jeśli podzielimy przez 2 i reszta wynosi: 1, to...? :) (No i ten ostatni else jest niepotrzebny.)

Przełóż to na swój algorytm i zrozum, jakie liczby drukuje twój. 

(na przyszłość, nie wrzucaj screena kodu, tylko sam kod, umieszczony w bloczkach)

1
komentarz 25 listopada 2017 przez pawelwch Użytkownik (860 p.)
...to wychodzi liczba nieparzysta ;)

Dziekuje :)
komentarz 25 listopada 2017 przez pawelwch Użytkownik (860 p.)

Jak juz mam taka okazje to zapytam, co w tym kodzie jest źle? Przekierowuje mnie pod błedny adres z tego co widzę...

https://gist.github.com/pawelwch/fc7153ded49b61031da992ef6fad7758

Powinno przekierowywać na 

http://localhost/youtube1/petlaphp.php

a przekierowuje na 

http://localhost/youtube1/localhost/youtube1/petlaphp.php 

komentarz 25 listopada 2017 przez Kamil Łydka Dyskutant (7,580 p.)

Przeanalizuj te dwa adresy, które wstawiłeś i czy na pewno tutaj: 

<form action="http://localhost/youtube1/petlaphp.php"

potrzebujesz ten http:://localhost/

+2 głosów
odpowiedź 25 listopada 2017 przez Eryk Andrzejewski VIP (143,580 p.)
Pętla while wykonuje się od numerka startowego do końcowego (wysłanego w zapytaniu). Po każdym jej obiegu ten numer jest zwiększany o jeden. Czyli program operuje na zbiorze liczb naturalnych z przedziału <$startNum, $countTo>.

W każdym obiegu pętli jest sprawdzane, czy wynik modulo zmiennej $startNum przez 2 jest różny od zera, a więc czy liczba jest nieparzysta (dla liczb nieparzystych modulo 2 wynosi 1 - modulo to inaczej reszta z dzielenia). Jeżeli jest nieparzysta, to wyświetla ją na ekranie (a następnie inkrementuje liczbę, bo pozostałe bloki się nie wykonają).

Jeżeli jednak była parzysta, to sprawdza się najpierw czy jest większa lub równa 1000. Jeśli tak, przerywa się działanie całej pętli i program się kończy (lub wykonuje się kod poniżej).

Jeśli jednak jest mniejsza niż 1000, to zwiększa się liczbę $startNum i ponownie wykonuje pętlę.
komentarz 25 listopada 2017 przez pawelwch Użytkownik (860 p.)
Super. Dziekuje. O takie cos mi chodziło :)
+1 głos
odpowiedź 25 listopada 2017 przez CzikaCarry Szeryf (75,060 p.)
Na Polski? Proszę bardzo:

Jeśli $startnum mod 2 jest różne od 0, to wypisz $startnum ", ".

Ogólnie modulo to reszta z dzielenia.

Nie ma tu czego za bardzo tłumaczyć, ani tym bardziej rozumieć. Przy pomocy modulo 2 zazwyczaj sprawdza się, czy liczba jest parzysta / nieparzysta.
3
komentarz 25 listopada 2017 przez Tomek Sochacki Szeryf (83,090 p.)

Przy pomocy modulo 2 zazwyczaj sprawdza się, czy liczba jest parzysta / nieparzysta.

Można też to sprawdzić operatorem bitowym AND, jest to krótsza forma zapisu, choć niektórzy krytykują ogólnie używanie operatorów bitowych ale to już kwestia indywidualna więc przykład daję jako pewną ciekawostkę :)

const numberType = ( n ) => n&1 ? 'nieparzysta' : 'parzysta';

numberType( 2 );  //"parzysta"
numberType( 20 ); //"parzysta"
numberType( 3 );  //"nieparzysta"
numberType( -3 ); //"nieparzysta"
numberType( -4 ); //"parzysta"

 

komentarz 26 listopada 2017 przez CzikaCarry Szeryf (75,060 p.)
Ooo, a tego to nie wiedziałem, chyba zacznę korzystać :)

Podobne pytania

0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 26 lutego 2017 w C# i .NET przez Kamil Musial Początkujący (250 p.)
0 głosów
2 odpowiedzi 140 wizyt
pytanie zadane 19 lipca 2017 w C i C++ przez barti22062 Początkujący (370 p.)
0 głosów
2 odpowiedzi 142 wizyt
pytanie zadane 25 lutego 2017 w C i C++ przez Aleksander Nowicjusz (240 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

52,032 zapytań

94,890 odpowiedzi

193,428 komentarzy

25,358 pasjonatów

Przeglądających: 126
Pasjonatów: 3 Gości: 123

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...