4. gyakorlat
Téma: Vezérlési szerkezetek
- Ciklusok
- Elágazások
Ciklusok
Általános szintax:
for
- A leggyakrabban használt ciklus
- Leginkább range loop-hoz használjuk
- pl. egy tömb elemein iterálunk végig
-
A ciklusmagnak 3 alrésze van
- ciklusváltozó (általában
i) - futási feltétel a ciklusváltozóra (pl.
i < 5) - ciklusváltozó módosítása (pl.
i++vagyi += 10) - A cilusváltozót definiálhatjuk a cikluson kívül
- A cilusváltozót a törzsben is módosíthatjuk
- A ciklus futását a törzsben is megszakíthatjuk
breakutasítással - Csinálhatunk vele végtelen ciklust is:
for(;;) { utasítások }
- ciklusváltozó (általában
Általános szintax:
Példa:
#include <stdio.h>
int main()
{
// 0-tól 4-ig megy
for (int i = 0; i < 5; i++)
{
printf("%d\n", i);
}
// 0-tól 10-ig megy kettesével
for (int i = 0; i < 11; i += 2)
{
printf("%d\n", i);
}
// kívül definiált ciklusváltozó
int alma;
for (alma = 0; alma < 10; alma++)
{
printf("%d\n", alma);
}
// egy tömb elemein iterálunk végig
int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i = 0; i < 10; i++)
{
array[i] += 1;
printf("%d\n", array[i]);
}
return 0;
}
while
- A ciklus elején ellenőrzi, hogy a ciklusmag állítása igaz-e
- Általában külső változóra elkövetett feltétel vizsgálatot végzünk
- Csinálhatunk vele végtelen ciklust is:
while (1) { utasások }
Általános szintax:
Példa:
do-while
- Ugyanaz, mint a sima
whileegy különbséggel => - A cilus végén ellenőrzi, hogy a ciklusmag állítása igaz-e
- Gyakori felhasználása: felhasználói input bekérése és ellenőrzése, amíg az input nem megfelelő
- Csinálhatunk vele végtelen ciklust is:
do { utasítások } while(1)
Általános szintax:
Példa:
#include <stdio.h>
int main()
{
int szam = 0;
do
{
printf("Kérek egy számot 1 és 10 között: ");
scanf("%d", &szam);
} while (szam < 0 || szam > 10);
return 0;
}
Elágazások
if-else
- Általános célú elágazás
- A kapocszárójelek elhagyhatóak, ha csak egy utasítást tartalmaz (nem ajánlott)
Általános szintax:
if ( feltétel 1 )
{ utasítások }
else if ( feltétel 2 ) // opcionális
{ utasítások }
else if ( feltétel 3 ) // opcionális
{ utasítások }
…
else // opcionális
{ utasítások }
Példa:
int a = 10;
if (a < 0)
{
printf("Negatív\n");
}
else if (a >= 0 && a <= 10)
{
printf("0 és 10 között\n");
}
else
{
printf("10-nél nagyobb\n");
}
swich
- Integrális típusok esetén használható elágazás
- Átírható if-else if-else elágazásokra is
- A break elhagyható, de akkor a következő case is vizsgálatra kerül
- A
{}elhagyhatóak a case-kben, kivéve, ha helyi változókat deklarálunk benne
Általános szintax:
Példa: