C/Instrukcje sterujące: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
mNie podano opisu zmian
Linia 139:
== Pętle ==
 
=== Instrukcja while ===
Często zdarza się, że nasz program musi wielokrotnie powtarzać ten sam ciąg instrukcji. Aby nie przepisywać wiele razy tego samego kodu można skorzystać z tzw. '''pętli'''. Pętla wykonuje się dotąd, dopóki prawdziwy jest warunek.
<source lang="C">
Linia 165:
* Dlaczego warunek to "a <= 10" a nie "a!=10"? Odpowiedź jest dość prosta. Pętla sprawdza warunek przed wykonaniem kolejnego "obrotu". Dlatego też gdyby warunek brzmiał "a!=10" to dla a=10 jest on nieprawdziwy i pętla nie wykonałaby ostatniej iteracji, przez co program generowałby kwadraty liczb od 1 do 9, a nie do 10.
 
=== Instrukcja for ===
Od instrukcji while czasami wygodniejsza jest instrukcja '''for'''. Umożliwia ona wpisanie ustawiania zmiennej, sprawdzania warunku i inkrementowania zmiennej w jednej linijce co często zwiększa czytelność kodu.
 
Linia 254:
{{Porada|W kodzie źródłowym spotyka się często inkrementację <tt>i++</tt>. Jest to '''zły zwyczaj''', biorący się z wzorowania się na nazwie języka [[C++]]. Post-inkrementacja <tt>i++</tt> powoduje, że tworzony jest obiekt tymczasowy, który jest zwracany jako wynik operacji (choć wynik ten nie jest nigdzie czytany). Jedno kopiowanie liczby do zmiennej tymczasowej nie jest drogie, ale w pętli "for" takie kopiowanie odbywa się po każdym przebiegu pętli. Dodatkowo, w C++ podobną konstrukcję stosuje się do obiektów - kopiowanie obiektu może być już czasochłonną czynnością. Dlatego w pętli "for" należy stosować wyłącznie <tt>++i</tt>.}}
 
=== Instrukcja do..while ===
Pętle while i for mają jeden zasadniczy mankament - może się zdarzyć, że nie wykonają się ani razu. Aby mieć pewność, że nasza pętla będzie miała co najmniej jeden przebieg musimy zastosować pętlę do while. Wygląda ona następująco:
<source lang="C">
Linia 288:
</source>
 
=== Instrukcja break ===
Instrukcja '''break''' pozwala na opuszczenie wykonywania pętli w dowolnym momencie. Przykład użycia:
<source lang="C">
Linia 329:
</source>
 
=== Instrukcja continue ===
W przeciwieństwie do break, która przerywa wykonywanie pętli instrukcja '''continue''' powoduje przejście do następnej iteracji, o ile tylko warunek pętli jest spełniony. Przykład:
<source lang="C">
Linia 357:
Powyższy program generuje liczby z zakresu od 1 do 50, które nie są podzielne przez 4.
 
== Instrukcja goto ==
 
Istnieje także instrukcja, która dokonuje skoku do dowolnego miejsca programu, oznaczonego tzw. '''etykietą'''.