namespace whileCiklusBevezetes
{
class Program
{
static
void Main(string[]
args)
{
//While ciklus bevezetés
//Feladat:
Töltsünk fel egy 10 elemű
//int
tömböt véletlen számokkal!
Console.WriteLine("Tömb létrehozása...");
int[]
szamok = new int[10];
Random
rnd = new Random();
//Megoldás
for ciklussal (plusz kiírás):
Console.WriteLine("Feltöltés, kiírás for ciklussal:");
for
(int k = 0; k < szamok.Length; k++)
{
szamok[k] = rnd.Next(100);
Console.WriteLine(szamok[k]);
}
Console.ReadLine();
//Megoldás
while ciklussal (plusz kiírás):
//(i:
itt is ciklusváltozó)
Console.WriteLine("Feltöltés, kiírás while ciklussal:");
int
i = 0;
while
(i < szamok.Length)
{
szamok[i] = rnd.Next(100);
Console.WriteLine(szamok[i]);
i++;
}
Console.ReadLine();
//Összegzés
tétele for ciklussal:
Console.WriteLine("Összegzés for ciklussal:");
int
osszeg = 0;
for
(int m = 0; m < szamok.Length; m++)
{
osszeg = osszeg + szamok[m];
}
Console.WriteLine("Összeg for ciklussal: {0}", osszeg);
//Összegzés
tétele while ciklussal:
Console.WriteLine("Összegzés while ciklussal:");
osszeg = 0;
i = 0;
while
(i < szamok.Length)
{
osszeg = osszeg + szamok[i];
i++;
}
Console.WriteLine("Összeg while ciklussal: {0}",
osszeg);
Console.ReadLine();
//Gyakorló
feladatok while ciklusra:
//1.
feladat:
//Írjuk
ki az első 100 természetes számot
//a
képernyőre! (0,1,2,3...98,99)
Console.WriteLine("Az első 100 természetes szám következik:");
Console.ReadLine();
i = 0;
while
(i < 100) //Nullától 99-ig, tehát 100-szor fut
{
Console.WriteLine(i);
//ha a ciklusváltozót íratjuk ki, pont jó lesz
i++;
}
//Itt
használhatjuk a ciklusváltozót a kiíráshoz, ez nem mindig ilyen egyszerű.
//Ha
ennél összetettebb a feladat, akkor érdemes lehet egy új változót bevezetni,
később lesz erre még példa.
Console.ReadLine();
//2.
feladat:
//Írjuk
ki az első 100 darab 2-vel osztható
//természetes
számot
//a
képernyőre! (0,2,4...)
Console.WriteLine("Az első 100 darab 2-vel osztható természetes szám
következik:");
Console.ReadLine();
i = 0;
int
db = 0;
while
(db < 100) //itt arra koncentrálunk, hogy biztos
pontosan 100-szor fusson
//ezért
nem jó az i, mert 100-nál több számot kell végignéznünk egyesével
//és
az i-t arra használjuk, hogy ezeken végigmenjünk
{
if
(i % 2 == 0)
{
Console.WriteLine(i);
db++; //csak akkor emeljük ezt az értéket, ha tényleg találtunk
egy feltételnek megfelelő számot
}
i++; //mivel
minden számot meg kell nézni, egyesével növeljük az i-t
}
Console.ReadLine();
//3.
feladat:
//Írjuk
ki az első 10 darab 10-zel osztható
//természetes
számot
//a
képernyőre!
//(Nagyon
hasonlít az előzőre.)
Console.WriteLine("Az első 10 10-zel osztható természetes szám
következik:");
Console.ReadLine();
i = 0;
db = 0;
while
(db < 10)
{
if
(i % 10 == 0)
{
Console.WriteLine(i);
db++;
}
i++;
}
Console.ReadLine();
//4.
feladat:
//Kérjünk
be karaktereket a felhasználótól
//egy 5
elemű tömbbe!
Console.WriteLine("5 karakter bekérése következik.");
char[]
karakterek = new char[5];
i = 0;
while
(i < karakterek.Length)
{
Console.WriteLine("Kérek egy karaktert!");
karakterek[i] = Convert.ToChar(Console.ReadLine());
i++;
}
Console.ReadLine();
//5.
feladat:
//Addig
írjuk ki a képernyőre a számokat egyesével
//százegytől
indulva, amíg nem találunk egy olyan számot,
//ami
osztható 23-mal.
Console.WriteLine("Ami 23-mal osztható, azt már nem írjuk ide:");
Console.ReadLine();
i = 101; //itt
beállítjuk a kezdőértéket, az első számot; amit először ki kell írni
while
(!(i % 23 == 0)) //addig menjen, amíg MÉG NEM
talált a feltételnek megfelelőt
//1.
a feltételt könnyen meg tudjuk fogalmazni, mert az oszthatóságot könnyen
kiszámoljuk
//2.
eztán már csak tagadni kell, hogy fusson az a ciklus...
{
Console.WriteLine(i);
//mivel egyesével minden számot ki kell írni,
használhatjuk a ciklusváltozót
i++;
}
Console.ReadLine();
//6.
feladat:
//Addig
írjuk ki a képernyőre a számokat egyesével
//20-tól
indulva, amíg nem találunk egy olyan számot,
//ami
osztható 3-mal, 4-gyel, és 5-tel is.
//(3*4*5=60
előtt kell neki megállni.)
Console.WriteLine("Ami osztható 3-mal, 4-gyel, és 5-tel is, előtte
megállunk:");
Console.ReadLine();
i = 20;
while
(!(i % 3 == 0 && i % 4 == 0 && i % 5 == 0))
//mint
az előző feladat, csak összetett a feltétel
//1.
fogalmazzuk meg úgy, mintha csak a 3-mal oszthatóságot kellene figyelni
//2.
találjuk ki, milyen logikai operátor (művelet) kell ahhoz, hogy együtt legyen
igaz a 3-mal, és a 4-gyel való oszthatóság, ez az:&&
//3.
bővítsük ki az utolsó résszel
//4.
tagadjuk, hogy addig fusson a ciklus, míg ilyet nem talál
{
Console.WriteLine(i);
i++;
}
Console.ReadLine();
//Tehát
a for ciklusnál rugalmasabb ciklus abból a szempontból,
//hogy
nincs előre meghatározva a lépésszáma.
|