Feltételes logika megismerése elágaztatási és hurkos utasításokkal
Ez az oktatóanyag bemutatja, hogyan írhat olyan kódot, amely megvizsgálja a változókat, és ezek alapján módosítja a végrehajtási útvonalat. Interaktív módon írhat a böngészőjében C#-kódot, és láthatja a kódja lefordításának és futtatásának eredményét. Ez az oktatóanyag olyan leckéket tartalmaz, amelyek a C#-ban található elágaztatási és hurkozási szerkezeteket vizsgálják. A leckékből fokozatosan elsajátíthatja a C# programnyelv alapismereteit.
Tipp.
Ha kódrészletet szeretne beilleszteni a fókusz módba, használja a billentyűparancsot (Ctrl + v vagy cmd + v).
Döntéshozatal az „if” utasítás segítségével
Futtassa az alábbi kódot az interaktív ablakban. Válassza az Enter fókusz mód gombot. Ezután írja be a következő kódblokkot az interaktív ablakban, és válassza a Futtatás lehetőséget:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Ha ezt a környezetet használja, kövesse a helyi verzióra vonatkozó utasításokat.
Módosítsa a b
változó deklarációját úgy, hogy az összeg 10-nél kisebb legyen:
int b = 3;
Kattintson ismét a Futtatás gombra. Mivel az eredmény 10-nél kisebb, semmit sem ír ki a program. A tesztelt feltétel eredménye hamis, és mivel az if
utasításban csak az „igaz” elágazáshoz adtunk meg végrehajtandó kódot, a program semmit sem hajt végre.
Tipp.
A C# (vagy bármely más programnyelv) elsajátítása során óhatatlanul fog néha hibázni a kód írásakor. A fordító azonosítja ezeket a hibákat, és jelenti őket Önnek. Ha a kimenetben hibaüzenetet lát, hasonlítsa össze alaposan a példakódot és az interaktív ablakba beírt kódot, hogy lássa, mit kell javítania. Ha így tesz, az segíthet megérteni a C#-kód struktúráját.
Ebből az első kódmintából láthatja az if
utasítás és a bináris logikai változók lehetőségeit. A boolean (bináris logikai) érték egy olyan érték, amely vagy true
(igaz), vagy false
(hamis) lehet. A C# programnyelvben a bool
típust használhatja a bináris logikai értékkel való munkához. Az if
utasítás egy bool
kifejezés értékét ellenőrzi. Ha az érték true
(azaz igaz), akkor a program végrehajtja az if
után szereplő utasítást. Ellenkező esetben a program kihagyja.
A feltételek ellenőrzésének és az ezen feltételeken alapuló utasítások végrehajtásának folyamata hatékony. Most mindezzel alaposabban is megismerkedhet.
Az „if” és az „else” utasítás közös használata
Ha szeretne végrehajtandó elágazást létrehozni mind az igaz, mind pedig a hamis esetekhez, akkor ehhez írhat egy else
(„egyébként”) elágazást. Próbálja meg a következőt:
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
Az else
kulcsszót követő utasítást a program csak akkor hajtja végre, ha az ellenőrzött feltétel értéke false
. Az if
és az else
kulcsszót bináris logikai feltételekkel kombinálva egy teljes, sokoldalú megoldást kap.
Fontos
Az if
és az else
sort követő behúzás csak az olvashatóság javítására szolgál.
A C#-nyelv nem kezeli jelentősként a behúzást vagy a szóközt.
A program a feltétel eredménye alapján hajtja végre vagy az if
vagy az else
kulcsszót követő utasítást. Az oktatóanyagban szereplő összes minta egy általános gyakorlatot követ a sorok behúzására az utasítások vezérlőfolyamata alapján.
Mivel a behúzás nem jelentős, azt kell használnia {
, és }
jeleznie kell, ha több utasítást szeretne a feltételesen végrehajtó blokk része lenni. A C# nyelvvel dolgozó programozók jellemzően az összes if
és else
záradéknál használják ezeket a kapcsos zárójeleket. Az alábbi példa megegyezik a létrehozott példával. Próbálja ki.
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
Tipp.
Az oktatóanyag további részében a kódminták tartalmazzák a kapcsos zárójeleket, az elfogadott eljárásokat követve.
Tesztelhet összetettebb feltételeket is:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
A ==
szimbólum az egyenlőséget teszteli. A használat ==
megkülönbözteti az egyenlőségi tesztet a hozzárendeléstől, amelyet a következőben a = 5
látott.
Az &&
operátorral végezhet „és” típusú kiértékelést. Ezen operátor használatakor mind a bal, mind pedig a jobb oldalnak „igaz” értéket kell adnia ahhoz, hogy az „igaz” elágazás legyen végrehajtva. Az alábbi példa azt is szemlélteti, hogy az egyes feltételes elágazásokban több utasítást is használhat, ha {
és }
kapcsos zárójelek közé zárja azokat.
Az "vagy" jelölésére is használható ||
:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) || (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("Or the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("And the first number is not equal to the second");
}
Módosítsa a a
, , b
és c
váltson a két érték között &&
, és ||
vizsgálja meg. Jobban megismerheti az operátorok és ||
az &&
operátorok működését.
Műveletek ismétlése ciklusokkal
Az összetettebb programok létrehozásának másik fontos fogalma a ciklus. Ciklusok segítségével ismételhet olyan utasításokat, amelyeket egynél többször szeretne végrehajtani. Próbálja ki ezt a kódot az interaktív ablakban:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
A while
utasítás ellenőriz egy feltételt, és ha a feltétel értéke igaz, akkor végrehajtódik a while
utáni utasítás. A program újra és újra ellenőrzi a feltételt és végrehajtja az utasításokat, egészen addig, amíg a feltétel hamis értéket nem ad.
Egy másik új operátor is található ebben a példában. A counter
(számláló) változó utáni ++
operátor egy növelési operátor. Hozzáad 1-et a számláló értékéhez, és menti a kapott értéket a számlálóba.
Fontos
Fontos, hogy a while
ciklusban használt feltétel a kód végrehajtásakor hamis értéket adjon egy ponton. Máskülönben végtelen ciklust hoz létre, és a program végrehajtása sosem fog véget érni. Ezt nem mutatjuk be itt, mert a kódját végrehajtó motor időtúllépési hibát adna, és nem jelenne meg semmilyen kimenet.
A while
ciklus a feltételt még azelőtt ellenőrzi, hogy végrehajtaná a while
utáni kódblokkot. A do
... while
ciklus ezzel ellentétben először végrehajtja a kódblokkot, és csak azután ellenőrzi a feltételt. Így néz ki:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Ez a do
ciklus ugyanúgy működik, mint a korábbi while
ciklus.
A következőkben megismerheti a ciklusok utolsó típusát.
A „for” ciklus használata
A C#-kódban gyakran használt ciklusok egy másik típusa a for
ciklus. Próbálja ki ezt a kódot az interaktív ablakban:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
Ez a kód ugyanazt teszi, mint a korábban használt while
és do
ciklust tartalmazó kód. A for
utasítás három részből áll, melyekkel vezérelheti a ciklus működését.
Az első rész az inicializáló: A int counter = 0;
rész deklarálja a counter
változót a ciklus változójaként, és hozzárendeli a 0
kezdeti értéket.
A középső rész a feltétel: A counter < 10
rész deklarálja, hogy a for
ciklus addig hajtódjon végre, amíg a számláló változó értéke 10-nél kisebb.
Az utolsó rész az iterátor: A counter++
rész meghatározza, hogy miként változzon a számláló változó értéke a for
utasítást követő blokk végrehajtása után. Ebben a példában ez a rész 1-el növeli a counter
változó értékét a blokk minden egyes végrehajtását követően.
Javasoljuk, hogy kísérletezzen kicsit önállóan. Próbálja ki az alábbiakat:
- Módosítsa az inicializálót, hogy más kezdeti értékkel induljon a ciklus.
- Módosítsa a feltételt, hogy más értéknél álljon le a ciklus végrehajtása.
Ha végzett, a követőkben írhat némi kódot önállóan az eddig tanultak felhasználásával.
Van egy másik, az oktatóanyagban nem szereplő ciklusutasítási utasítás: az foreach
utasítás. Az foreach
utasítás megismétli az utasítást az elemek sorozatának minden elemére vonatkozóan. Leggyakrabban gyűjteményekhez használják, ezért a következő oktatóanyag ismerteti.
Beágyazott hurkok létrehozása
A while
, do
vagy for
hurok beágyazható egy másik hurokba, hogy mátrixot hozzon létre a külső hurok egyes elemeinek és a belső hurok egyes elemeinek kombinációjával. Hozzunk létre egy alfanumerikus párokat, amelyek a sorokat és az oszlopokat jelölik.
Egy for
hurok hozhatja létre a sorokat:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Egy másik hurok létrehozhatja az oszlopokat:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Az egyik hurkot beágyazhatja a másikba párok létrehozásához:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Láthatja, hogy a külső hurok a belső hurok minden egyes futtatásakor egyszer növekszik. A sor- és oszlopbe ágyazás megfordítása, és a módosítások megtekintése saját maga számára.
Elágazások és ciklusok kombinálása
Most, hogy megismerte az if
utasítást és a C# nyelvben használható ciklusokat, próbálja ki, hogy tud-e olyan C#-kódot írni, amely visszaadja az összes 3-mal osztható egész szám értékét 1–20-ig. Néhány tipp:
- A
%
operátor visszaadja az osztási műveletből kapott maradékot. - Az
if
utasítással ellenőrizheti, hogy egy adott számnak az összeg részének kell-e lennie. - A
for
ciklussal megismételheti a lépéseket minden egyes számnál az 1-től 20-ig terjedő tartományban.
Próbálja meg önállóan megírni a kódot. Ha végzett, a következő részben ellenőrizheti a megoldását. Gyors tippként annyit elmondunk, hogy 63-at kell kapnia eredményként.
Feladat ellenőrzése
A következőhöz hasonló kódot írt?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
Gratulálunk!
Elvégezte az "ágak és hurkok" interaktív oktatóanyagot. Az alábbi listagyűjteményi hivatkozásra kattintva elindíthatja a következő interaktív oktatóanyagot, vagy a .NET webhelyre látogatva letöltheti a .NET SDK-t, létrehozhat egy projektet a gépen, és kódolt maradhat. A "Következő lépések" szakaszban visszatérhet ezekhez az oktatóanyagokhoz.
Ezekről a fogalmakról az alábbi cikkekben tudhat meg többet:
Problémát tapasztalt ezzel a szakasszal kapcsolatban? Ha igen, küldjön visszajelzést, hogy kijavíthassuk a hibát.