4 - Do-while, tömbök és for ciklus
Do-while
- While -> elöltesztelős
- Első lépés: ellenőrzi a feltételt
- Második lépés: végrehajtja a feladatot
- Egyszer se hajtja végre a feladatot, ha hamis az állítás
- Do while -> hátultesztelős
- Első lépés: végrehajtja a feladatot
- Második lépés: elenőrzi a feltételt
- Garantálja, hogy egyszer lefut
do {
// Ciklusmag - Mit csináljon a program
} while (<feltétel>);
int i = 0;
while (i < 0) { Console.WriteLine("While: " + i); i++; }
int j = 0;
do { Console.WriteLine("Do-while: " + j); j++; } while (j < 0);
Feladat - Filmértékelés
Egy mozi a vetítés után megkéri a nézőit, hogy értékeljék a látott filmet egy 1-től 5-ig tartó skálán. Kérjük be az értékelést egészen addig amíg a felhasznáó megfelelő értéket nem ad meg. Ha nem a skálán szereplő értéket ad, jelezzük a részére, ha pedig igen, köszönjük meg.
int ertekeles;
do
{
Console.Write("Ertekelje a filmet 1-tol 5-ig: ");
ertekeles = Convert.ToInt32(Console.ReadLine());
if (!(ertekeles >= 1 && ertekeles <= 5))
{
Console.WriteLine("Helytelen ertek!");
} else
{
Console.WriteLine("Koszonjuk a valaszat!");
}
} while (!(ertekeles >= 1 && ertekeles <= 5));
Tömbök
- Ugyanolyan típusú adatok sorozata
- Tudjuk, hogy milyen hosszúak
// Inicializálás <típus>[] <tömb neve> = {<ertek1>, <ertek2>, <ertek3>}; // Deklarálás és később értékadás <típus>[] <tömb neve> = new <típus>[<tömb hossza>]; <tömb neve>[0] = <ertek1>;
Megadott érték lekérése
- index alapján -> 0-tól kezdődik
<tömb neve>[<index>]
int[] tomb = {1, 2, 3, 4};
Console.WriteLine(tomb[0]); // Valasz: 1
Tömb hosszának lekérése
<tömb neve>.Length
int[] tomb = {1, 2, 3, 4};
Console.WriteLine(tomb.Length); // Valasz: 4
Feladat - A hét napjai
Tároljuk a hét napjait egy konstans tömbben. Írjuk ki, hogy hány nap van egy héten, majd kérjünk be egy számot a felhasználótól és írjuk ki az annak megfelelő napot.
string[] napok = { "Hetfo", "Kedd", "Szerda", "Csutortok", "Pentek", "Szombat", "Vasarnap" };
Console.WriteLine($"A het napjainak szama: {napok.Length}");
Console.WriteLine($"Adjon meg egy szamot 1-tol {napok.Length}-ig");
int szam = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"A(z) {szam}. nap a heten: {napok[szam - 1]}");
String, mint tömbszerű típus
- A string egy karakterekből álló sor -> tömbhöz hasonlóan viselkedik, ezért a korábbi műveletek elvégezhetők vele
- String hosszának lekérése:
<string változó>.Length
- String-ben egy karakter elérése
Írjunk ki egy a felhasználó által megadott szót betűnként sorokra tördelve!
Console.Write("Adjon meg egy szot: ");
string szo = Console.ReadLine();
int i = 0;
while(i < szo.Length)
{
Console.WriteLine(szo[i]);
i++;
}
For ciklus
- Iterálható elemeken megy végig
for (int i = 0; i < <utolsó elem>; i++){
// Ciklusmag - Mit csináljon a program
}
Feladat - Sport foglalkozások
Egy sportegyesület különböző elfoglaltságokat szervez. A felhasználó a programunk segítségével ellenőrizni tudja, hogy az általa megadott sport szerepel-e a foglalkozások között.
string[] sportok = { "falmaszas", "tenisz", "uszas", "lovaglas", "kosarlabda", "roplabda" };
Console.Write("Ezt a sportot keresem: ");
string keresettSport = Console.ReadLine();
bool vanE = false;
for (int i = 0; i < sportok.Length; i++)
{
if (keresettSport == sportok[i])
{
vanE = true;
}
}
if (vanE)
{
Console.WriteLine("Van ilyen foglalkozas");
}
else
{
Console.WriteLine("Nincs ilyen foglalkozas");
}