A cikk egy lecke

A C / C ++ lecke 10. A kiválasztás szerkezete

1. Először hadd adjuk a blokk fogalmát. sok esetben szükségünk lesz rá. A blokk a zárójelben lévő állítások listája:



Miért van szükség? A blokk lehetővé teszi, hogy több operátort vegyen figyelembe. Ez csak egy kis kitérőt, amit kihagyott az előző órák Ezen kívül megadhatjuk a változó egység, amely automatikusan megsemmisül, amikor kilép a blokk, de az úgynevezett területek láthatóságát és élettartama változó fogunk foglalkozni később.

2. Ha. Most menjünk közvetlenül a választás (vagy elágazás) megépítéséhez. Engedjék meg (hagyja, hogy azok, akik olvassák mindkét kurzusomat, bocsásson meg nekem) hülyén ismételje meg a szöveg egy részét a leckéből egy hasonló témában a VB tanfolyamon

Az alsó sor egyszerű. Oroszul, a mindennapi életben folyamatosan használjuk. Ez a mi nagyon gyakori ha. Ha felhívnak minket az ajtón, akkor nyitunk. Ebben az esetben a csengő tesztelhető állapot (emlékszel egy másik lecke a logikai operátorokról?), De menjünk nyitva az az üzemeltető, aki csak akkor lesz végrehajtva, ha ez a feltétel igaz. Ez a legegyszerűbb példa az elágazásra. Mi az ág? Egy cselekvési nyilatkozat, honnan származik az ágazat? A lényeg az, hogy a fióktelep így néz ki: vagy nyitni fogok - vagy nem teszek semmit.

Hogyan fogják ezt az opciót rögzíteni?

ha (logikai kifejezés)

az üzemeltető;

Esetünkre:

ha (hívja az ajtót = = igaz)

Nyissuk meg;

Tekintsünk két lehetőséget az írásra:

ha (feltétel)
utasítás1;


Amint látjuk, a második esetben az operátorokat a blokk mellékelt zárójelzõi miatt kell végrehajtani (ahogy azt a lecke elején említettük). Így nagyon jelentős különbség van e két lehetőség teljesítményében.

Az első esetben, az igazi állapot alatt, az 1 operátort végrehajtják, és a 2 operátor minden esetben meg van elégítve, még akkor is, ha a feltétel hamis. Ne felejtsük el, hogy határozatlan ideig a második operátor szintjére toltuk, ez csak egy jelzés számunkra, de nem a fordító számára. Úgy véli, hogy az első mondat az if blokkban van, majd utána, ami az első kijelentés végét mutatja, a teljes if blokk véget ér. És egy operátort2 hajt végre, amely semmi köze ahhoz, ha. Ennélfogva a feltétel teljesülésétől függetlenül teljesül.

A második esetben a valós állapot alatt a BOTH operátor végrehajtásra kerül. Miért? De azért, mert a blokk zárójelekkel egyesülnek, és teljes egészükben végrehajtásra kerülnek. És ha a feltétel hamis, sem az operátor1, sem az operátor2 nem fog végrehajtani. Itt van két kis konzol!

3. Ha. mást. Bonyolítsuk a problémát.

Beállítást, ha ha a feltétel hamis, túl, meg kell adni bizonyos állítások, mint ez: ha dolgoznom kell ma - a feltétel igaz - én felkelni 7h, és mossa, öltözz, perekushu és menj dolgozni. Ha a feltétel nem hamis (ez egyébként) - aludni fogok 10-ig és járni.

Hogy fog kinézni:

ha (ellenőrzött állapot)
operator1 (vagy az operátorok blokkja, amint már megtudtuk)

más
operator2 (vagy mondatok blokkja)

ha (munka)
Kelj fel 7 órakor;

menni dolgozni;
>
más
10 óráig alszom;

// ne felejtsd el megadni, hány, majd hogyan fogsz elhagyni. (
>

Az if utasítás végrehajtása a kifejezés kiértékelésével kezdődik.

A további végrehajtás a következő rendszer szerint történik:
  • ha a kifejezés igaz (azaz nem 0), akkor az operátor-1 végrehajtódik.
  • ha a kifejezés hamis (azaz 0), akkor a-2 operátor végrehajtásra kerül.
  • ha a kifejezés hamis, és nincs operátor-2. akkor a következő kezelő végezhető el.


4. Beágyazott szerkezetek. Az if utasítások egymásba ágyazhatók. Egy beágyazott, ha kimutatás lehet az if konstrukcióban vagy egy másik if utasítás másik konstrukcióján belül. Ahhoz, hogy a program olvashatóbb legyen, javasoljuk, hogy a kezelőket és a konstrukciókat beágyazott, ha a kijelentések a göndör zárójelek használatával csoportosítják. Ha a zárójelek elmaradnak, akkor a fordító társítja a másik kulcsszót a legközelebb, ha nincs más.


Ennek eredményeképpen a program r lesz 2.

Ha az if utasítás után elhagyja a programot a programban, a program így fog kinézni:

int main ()
int t = 2, b = 7, r = 3;


Ebben az esetben r értéke 3, mivel a másik kulcsszó a második, ha nem végrehajtott utasításra vonatkozik, mert az első, ha nem ellenőrzi az állapotot.

A következő részlet a beágyazott, ha állításokat illusztrálja:

ha (ZNAC == '-') x = y - z;

egyébként, ha (ZNAC == '+') x = y + z;

egyébként, ha (ZNAC == '*') x = y * z;

más, ha (ZNAC == '/') x = y / z;


E példa szemléltetése alapján arra a következtetésre juthatunk, hogy a beágyazott utasításokkal rendelkező konstrukciók meglehetősen nehézkesek és nem mindig elég megbízhatóak. Egy másik módja annak, hogy megszervezzük a választást a különböző lehetőségek közül, hogy egy speciális kapcsoló nyilatkozatot használjunk, amelyet a következő leckében megtudhatunk.

(Megjegyzés az Alpha-tól:
Az űrlap építése


nagyon jellemző a különféle variációk rendezésére (lehet mondani, az egyik C ++ nyelvű kifejezés), az olvasás kényelmét formázzák behúzás nélkül, és valójában nem tekinthető beágyazottnak (bár hivatalosan is). Ezenkívül nem világos, hogy honnan született az a következtetés, hogy mennyire volt masszív és megbízhatatlan. Például alkalmaztam azt a rekurzióban lévő cikkemben a szekcióban annak meghatározására, hogy a karakterlánc egy mintát illesz.)

  • Adjon meg két számot. Minél kisebb a számok összege, annál nagyobb a különbség. Adja ki az eredményeket a képernyőn.
  • Adjon meg egy számot. A képernyőn megjelenik egy üzenet arról, hogy ez a szám pozitív, negatív vagy nulla.
  • Feladat: a meteorológus naponta 4 szélsebességmérést távolít el. Be kell lépnie
Ez a négy szám a programban, kiszámítja az átlagos napi szélsebességet és hozza a képernyőre. KÖTELEZŐ: ellenőrizze a bevitt számokat, hogy érvénytelen (negatív) értéket ne írjon be. Ha ez történik, ne jelenítse meg az eredményt (átlagsebesség), de jelenítse meg az üzenetet Hibás adatbevitel!

Kapcsolódó cikkek