Zadanie jest takie: w przedziale <x,y> ( a więc domkniętym) znaleźć wszystkie liczby nieparzyste i zsumować je. Potem wypisać tę sumę. Liczby nieparzyste występują dość regularnie w zbiorze liczba całkowitych, są pewne, dość proste w sumie, metody by znaleźć taką sumę bez przejrzenia wszystkich licz w przedziale, jednak autorzy podali program, który robi wszystko dokładnie tak jak w treści.
W linii 12 zaczyna się pętla od x do y. Ponieważ używana jest zmienna x do ona już jest zainicjowana i nie potrzeba tego robić w pętli. W zasadzie ta pętla mogłaby być zapisana jeszcze prościej/krócej:
for (;x<=y;x++)
Skoro zmienna już instnieje i jest zainicjowana, to typowe podstawienie początkowe jest zbędne. Pamiętaj, że petla
for (A;B;C)
(gdzie A,B i C to dowolne wyrażenia (matematyczne?)) to to samo co kawałek kodu:
A;
while (B)
{
kod wewnątrz pętli for;
C;
}
Warunek jest nieostry (<=) ponieważ przedział ma być domknięty - tj te skrajne wartości (tutaj y) też należą do przedziału. Jaki rodzaj pętli się użyje to w sumie jest kwestia wygody i czytelności. Jak podałem wyżej to jest częściowo wymienne.
W pętli sprawdza się czy kolejna liczba (tutaj x) jest nieparzysta (linia 14) i jeśli tak dodaje się ją do zmiennej suma. Oczywiście jeśli sumujemy jakieś wartości, to zmienna w której sumujemy, powinna być początkowo wyzerowana (zero to tzw niezmiennik dodawania - formalnie to matematyka - chyba teoria grup).
Twój kod w sumie żadnej pętli nie zawiera. Ten while tak naprawdę robi za if - albo się wykona jeden raz i od razu robi return albo nic nie zrobi. Poza tym sprawdza praktycznie czy suma x + y jest nieparzysta a nie o to chodzi w zadaniu.
Jednym z kluczowych zagadnień w nauce informatyki jest umięjętność dokładniego rozumienia treści zadań (w potem, w pracy: otrzymanego do wykonania zadania).