This is an old revision of the document!
Ciklusok C-ben
A ciklusok segítségével utasításokat ismétlünk meg. Három fő típust ismerünk:
- for: ismétlés meghatározott számszor
- while: ismétlés, amíg a feltétel igaz
- do-while: ismétlés, amíg a feltétel igaz, de mindig lefut legalább egyszer (akkor is, ha a feltétel hamis)
Ezen kívül van két vezérlő utasítás:
- break → kilép a ciklusból
- continue → átugorja az adott iteráció további részét, és a következőre ugrik
for ciklus
Akkor használjuk, ha tudjuk előre, hányszor akarjuk ismételni az utasítást.
Szintaxis:
for (kezdőérték; feltétel; léptetés) {
// ciklusmag
}
Példa:
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
return 0;
}
while ciklus
Akkor használjuk, ha nem tudjuk előre, hányszor kell ismételni, de van egy feltétel.
Szintaxis:
while (feltétel) {
// ciklusmag
}
Példa:
#include <stdio.h>
int main(void) {
int i = 1;
while (i <= 5) {
printf("%d ", i);
i++;
}
return 0;
}
do-while ciklus
Ez mindig lefut legalább egyszer, mert a feltételt a ciklus végén ellenőrzi.
Szintaxis:
do {
// ciklusmag
} while (feltétel);
Példa:
#include <stdio.h>
int main(void) {
int i = 1;
do {
printf("%d ", i);
i++;
} while (i <= 5);
return 0;
}
break utasítás
A break azonnal kilép a legbelső ciklusból.
Példa: első 1-től induló szám, ami osztható 7-tel
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
printf("Találtam: %d\n", i);
break; // kilép a ciklusból
}
}
return 0;
}
continue utasítás
A continue kihagyja az aktuális iteráció hátralévő részét, és a következőre ugrik.
Példa: 1-től 10-ig, de a páros számokat kihagyjuk
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // párosakat átugorjuk
}
printf("%d ", i);
}
return 0;
}
Gyakorlás
- Írj programot, ami beolvas egy N számot, és kiszámolja az 1+2+…+N összeget for ciklussal.
- Kérj be egy pozitív számot, és számold ki a számjegyeinek összegét (pl. 123 → 1+2+3=6).
- A program kérjen be számokat addig, amíg a felhasználó nem találja el a titkos számot (pl. 7). Minden tipp után írd ki: „Túl kicsi” vagy „Túl nagy”.
- Olvass be egy számot N, majd írd ki az összes páros számot 1 és N között. Használj continue-t a páratlanok átugrására.
- Olvass be egy N számot, és számold ki az N! értékét (pl. 5! = 120) for ciklussal.
- Olvass be eg N számot, és írd ki a Fibonacci sorozat N elemét for ciklussal.
