Dobrze, spróbuje odpowiedzieć na twoje pytanie ;)
A). Przyjrzyjmy się teraz pętli
for
:
for( int iloscWykonan = 0; iloscWykonan < 5; ++iloscWykonan )
1.Czym właściwie jest iloscWykonan?
Odpowiedź - pierwszy argument pętli
for
to deklaracja zmiennej - w tym przypadku,
typ int, czyli liczba całkowita o nazwie iloscWykonan.
2. Co oznacza
iloscWykonan < 5
?
Odpowiedź - drugim argumentem pętli
for
, jest warunek kończący pętlę.
W tym przypadku, pętla będzie się wykonywać dopóki warunek jest spełniony,
czyli iloscWykonan nie równa się 5.
3.
iloscWykonan++
Preinkrementacja zmiennej
iloscWykonan
- dosłownie
iloscWykonan = iloscWykonan + 1
.
B). Różne formy zapisu.
1.W języku C spotkamy się z takim zapisem.
int iloscWykonan = 0;
for(; iloscWykonan < 5; ++iloscWykonan );
Wykonuje on te same czynności co kod z punktu B.
Różnica polega na tym, że definiujemy zmienną poza pętlą
for
.
I wtedy zmienna jest widoczna poza nią, w przeciwieństwie do przykładu, który opisałem w punkcie C.1 .
C). Ciekawostki:
1. Zmienna utworzona w pętli
for
jest nie widoczna poza pętlą. Oznacza to, że
możemy utworzyć dowolną liczbę
równorzędnych
pętli, ze zmienną o tej samej nazwie
i nie wpłynie to źle na działanie naszego programu. Przykład:
for( int i = 0; i < 5; ++i )
std::cout << "Ta pętla się wypisze.\n";
for( int i = 0; i < 5; ++i )
std::cout << "Ta też.\n";
for( int i; i < 5; ++i )
std::cout << "Ta nie.\n";
for( int i; i < 10; ++i )
std::cout << "Ta też nie.";[ code ]
2.Jeszcze jedna ciekawostka z książki o C, dostępnej dla każdego na wikibooks.
Świetny materiał, dla początkujących i zaawansowanych:
W kodzie źródłowym spotyka się często inkrementację i++ . Jest to zły zwyczaj, biorący
się z wzorowania się na nazwie języka C++. Post-inkrementacja i++ 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++ po-
dobną 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 ++i
D). Twoje pytanie.
Gdybyśmy w pętli napisali:
[code src="C++"] int i;
for( i == 1; i < 5; i++);[/code]
To nie wykonałaby się ona, z racji tego, że porównujemy, czy i jest równe 1.
Wartość zwróci prawdę, czyli 1 jeśli to prawda - analogicznie 0 jeśli fałsz.
E). Komentarz ;)
Moim zdaniem, jeśli chciałbyś się podszkolić, to popracuje trochę z kursem C++ na tej stronie.
Pozdrawiam!