Witam,
michalko12 napisał: żadnego może nie być
Chyba kolega miał na myśli
każdego.
dondu napisał: Sądzę, że dlatego, iż pokazujesz x1, ale nie deklarujesz jaką wartość ma mieć.
Tu nie ma co sądzić, zresztą błędnie (lecz pośrednio prawidłowo), kompilator jasno informuje nas co jest przyczyną ostrzeżenia.
drzasiek napisał: W pierwszym argumencie pętli for deklarujesz zmienną albo przypisujesz wartość już zadeklarowanej zmiennej.
Ciepło.
tmf napisał: Zapis for(x1; nic nie robi z x1, stąd kompilator tylko zwraca twoją uwagę pisząc, że taki zapis nie wpływa na x1 i żebyś sprawdził czy tak ma być (bez sensu), (...)
Ten kolega wreszcie powiedział (prawie) całą prawdę
Napisałem to dwa razy i napiszę trzeci: kompilator nam wyraźnie daje do zrozumienia co go trapi:
warning: statement with no effect
Ostrzega nas, że instrukcja (której zresztą jesteśmy autorami), nie ma żadnego efektu, wartość uzyskana w jej wyniku nie zostanie nigdzie przepisana ani nie zmieniamy w żaden sposób owej zmiennej - po to abyśmy byli tego świadomi, bo a nóż popełniliśmy jakąś literówkę.
Co do samej pętli
for, tak jak zauważył
michalko12, wszystkie trzy parametry są opcjonalne, pisząc
for( ; ; ) uzyskamy to samo co dzięki
while(1) - pętle nieskończoną.
Pierwszy parametr to inicjalizacja, ale nie musimy tam nic inicjalizować, ani zmiennych przypisywać, możemy sobie nawet jakąś funkcję wywołać - jest to po prostu sekcja która wykona się przed wejściem programu w pętle.
Drugi parametr to wyrażenie testujące - warunek działania pętli, sprawdzany przed każdą iteracją.
Trzeci parametr to wyrażenie licznikowe - wywoływane po każdej iteracji, jednakże możemy tu także zrobić co się nam żywnie podoba (tak jak i w przypadku pierwszego parametru).
Apeluję więc do forumowiczów, nie szerzmy dezinformacji
Potem ktoś uczący się języka tu zajrzy i będzie tylko powielał niepełne/błędne informacje jakie tu nabędzie.
Pozdrawiam,
GSM
P.S.
Mam nadzieję, że nikt nie poczuł się po mojej wypowiedzi urażony - nie taki był jej cel.
Jednocześnie proszę moderatora o usunięcie niepotrzebnych/mylących postów wg. uznania.