Prymitywne, ale ...
for (int pID = 0; pID < pages + 1; pID++)
for (int rID = 1; rID == 23; rID++)
System.Windows.Forms.MessageBox.Show(string.Format("0 - 1", rID, pID));
Dlaczego to nie działa?
Dzięki pecet :)
A teraz wytłumacz mi proszę. Druga pętla -> zaczynamy od rID 1 i chcę kontynuować dopóki dopóty rID osiągnie wartość 23. Dlaczego moja wersja jest niepoprawna. Zapis w postaci "rID < 24" działa.
Pętla wykonuje się tak długo jak warunek rID==23 jest prawdziwy. Jako, że już na starcie nie jest, pętla nie wykona się a więc rID nigdy nawet do 23 nie dojdzie.
To jest warunek kontynuowania działania pętli. Jeśli masz rID==23, to ten warunek już na początku nie jest spełniony (bo rID jest równe 1) i pętla w ogóle sie nie wykona.
Polecam Yoda-style wyrażeń warunkowych
Zamiast: rID == 24
pisz: 24 == rID
Jeśli się pomylisz w operatorze (=), to drugie wywali błąd kompilacji, a to pierwsze -- nie.