Az üzemeltetők a ciklus C

Az üzemeltetők a ciklus C

Egy ciklus egy blokk a kódot kell ismételni többször, hogy megoldja a problémát.

Mindegyik ciklus

  • egység tesztelése ciklus megismétlése feltételek
  • hurok test


A hurok végrehajtani, amíg az egység vizsgálati feltételek igaz értékkel tér vissza.
A hurok test tartalmaz műveletek sorozatát, amely végre abban az esetben igaz feltétel ismétlés ciklust. Miután az utolsó művelet a hurok a test ismét lefut működés ellenőrzése feltétele a ciklus ismétlődik. Ha ez a feltétel nem teljesül, a művelet elvégezhető közvetlenül állás után a ciklus a programkódot.

C-ben a következő típusú ciklus:

  • míg - ciklus előfeltétele;
  • tennie. míg - ciklus utófeltétel;
  • számára - a parametrikus ciklus (egy ciklus egy előre meghatározott számú ismétlés).

Ciklus közben előfeltétele

Általános formája


Ha a feltétel teljesül (a kifejezés, ellenőrzi az állapotát. Nem nulla), akkor az BlokOperatsy. zárójelek, akkor a feltétel t újra.
A sorozat fellépéseket, amelyek a vizsgálati feltételek és a végrehajtó BlokaOperatsy. ismétli, amíg a kifejezés, a feltétel tesztelt. Ez hamis (zérus). Tehát van egy kiút a ciklust, és a műveletet, állt a ciklus után üzemben.

Példa a Cu. Számoljuk ki a számok összege 1-től k lépett

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () int k; // állapítsa egész szám változó kulcsot
int i = 1;
int összege = 0; // kezdeti értéke az összeg 0
printf ( "k =");
scanf ( "". k); // adja meg a változó értékét k
míg a (I <= k) // пока i меньше или равно k
sum = sum + i; // hozzá az összege az i értéke
i ++; // növekmény i 1
>
printf ( "összege = \ n." összege.); // kiírja az összege
getchar (); getchar ();
vissza 0;
>


végrehajtásának eredménye

Az építőiparban a while ciklus. lehetővé kell tennie a tervezés, a változó értéke a vizsgált kifejezést, hogy a végén nem volt hamis (zérus). Ellenkező esetben a hurok lesz végtelen (végtelen ciklus).

Példa végtelenített hurok

míg - hurok előfeltétele, így lehetséges, hogy a hurok test nem soha elégedettek lesznek, ha abban az időben az első ellenőrző vizsgálat feltétel hamis.

Például, ha a fenti program kódot bevezetni k = -1, akkor megkapjuk az eredményt

Ciklus utófeltétel csinálni. míg

Általános formája

do BlokOperatsy;
> Míg (feltételek);


do hurok. míg - ez ciklus utófeltétel, ahol az igazság a kifejezés, ellenőrzi a feltétel után ellenőrizzük a készülék működését. zárójelek. a test végrehajtani, amíg a kifejezés, a feltétel tesztelt. Ez hamis, vagyis a test ciklus utófeltétel végrehajtásra legalább egyszer.

Használja a do hurok. míg a jobb, amikor el kell végezni legalább egy ismétlés, illetve ha az inicializálás tárgyak vesz részt a hitelesítési körülmények folyik belül a ciklus törzse.

Példa a Cu. Ellenőrizze, hogy a felhasználó beviszi a szám 0-10

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
#include // használni a rendszert ()
int main () int num; // állapítsa egész szám változó száma
rendszer ( "CHCP parancs 1251"); // bekapcsolja a magyar nyelv a konzol
rendszer ( "CLS"); // törölje a képernyőt
do printf ( "Adjon meg egy számot 0-tól 10"); // azonnali felhasználó
scanf ( "". num); // bemenet számát
> Míg ((NUM <0) || (num> 10)); // a ciklus ismétlődik, amíg num<0 или num>10
printf ( "A beírt szám." num.); // megjeleníti a beírt érték száma - 0-10
getchar (); getchar ();
vissza 0;
>

Parametrikus ciklus

Általános formája

a (inicializálás; feltételek; módosítás)
BlokOperatsy;
>

A - A paraméteres ciklus (a ciklus egy meghatározott számú ismétlések). A szervezet egy ilyen ciklus elvégzéséhez szükséges három művelet:

  • Inicializálása - hozzárendelés hurok paraméter kezdeti érték;
  • Feltétel - ellenőrizze hurok ismétlés állapot, leggyakrabban - összehasonlítva a paraméter egy bizonyos határérték;
  • Módosítása - változtassa meg a beállítást a következő lépés a hurok testet.


Ez a három művelet vannak írva zárójelben és elválasztva; ;. Jellemzően, a ciklus paraméter egy egész változó.
Inicializálni a paraméter kerül sor csak egyszer -, ha a ciklus végrehajtása megkezdődik.
Feltétel ellenőrzése ismétlés ciklust végezni minden végrehajtása előtt a ciklus törzsének lehetséges. Amikor kifejezést ellenőrzi a feltétel hamis lesz (nulla), a ciklus befejeződik. paraméter módosításával hajtjuk végre a végén minden végrehajtási ciklus a test. A paraméter növekedés és csökkenés egyaránt.

Példa a Cu. Számoljuk ki a számok összege 1-től k lépett

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () int k; // állapítsa egész szám változó kulcsot
int összege = 0; // kezdeti értéke az összeg 0
printf ( "k =");
scanf ( "". k); // adja meg a változó értékét k
A (int i = 1; i<=k; i++) // цикл для переменной i от 1 до k с шагом 1
sum = sum + i; // hozzá az összege az i értéke
>
printf ( "összege = \ n." összege.); // kiírja az összege
getchar (); getchar ();
vissza 0;
>

végrehajtásának eredménye

A felvétel a for ciklus kihagyható egy vagy több kifejezést, de nem hiányozhat a pontosvessző választja el a három komponens a ciklus.
Kód az előző példában felírható

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () int k; // állapítsa egész szám változó kulcsot
int összege = 0; // kezdeti értéke az összeg 0
printf ( "k =");
scanf ( "". k); // adja meg a változó értékét k
int i = 1;
a (; i<=k; i++) // цикл для переменной i от 1 до k с шагом 1
sum = sum + i; // hozzá az összege az i értéke
>
printf ( "összege = \ n." összege.); // kiírja az összege
getchar (); getchar ();
vissza 0;
>

A paramétereket tekintve a cím ciklus lehet változtatni a művelet során a ciklus törzsének, például a

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () int k; // állapítsa egész szám változó kulcsot
int összege = 0; // kezdeti értéke az összeg 0
printf ( "k =");
scanf ( "". k); // adja meg a változó értékét k
A (int i = 1; i<=k; ) // цикл для переменной i от 1 до k с шагом 1
sum = sum + i; // hozzá az összege az i értéke
i ++; // adjunk hozzá 1 az értéke i

>
printf ( "összege = \ n." összege.); // kiírja az összege
getchar (); getchar ();
vissza 0;
>

A ciklus felhasználható működés vessző -, - külön több kifejezést. Ez lehetővé teszi, hogy tartalmazza a leírásban a ciklus néhány inicializálási vagy korrekciós nyilatkozatok. Kifejezéseket, amelyek a művelet vonatkozik vessző. értékelni fogják balról jobbra.

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () int k; // állapítsa egész szám változó kulcsot
printf ( "k =");
scanf ( "". k); // adja meg a változó értékét k
A (int i = 1, j = 2; i<=k; i++, j+=2) // цикл для переменных
printf ( "i = j = \ n .." i, j.); // kiírja az i és j
>
getchar (); getchar ();
vissza 0;
>

ágyazott hurkok

A C, megengedett beágyazott hurok, azaz, ha az egyik ciklus belül egy másik:

for (i = 0; i<
a (j = 0; j ; // tömb Tsikla2 műveletek
>
// blokk Tsikla1 műveletek;
>

Példa. Kimenet A 0-99, 10 minden sorban

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () az (int i = 0; i<10; i++) // цикл для десятков
<
A (int j = 0; j <10; j++) // цикл для единиц
printf ( "% 2d" i * 10 + j.); // megjeleníti a számított szám (2 ismerős), és a tér
>
printf ( "\ n"); // lefordítani a külső hurok vonal
>
getchar (); // scanf () alkalmazunk,
vissza 0; // így a konzol elfér egyetlen hívás getchar ()
>

Javaslatok az szelekciós ciklusban

Amikor kiválasztunk egy ciklusra van szükség, hogy értékelje annak szükségességét, hogy ellenőrizze, milyen körülmények megkötésekor a ciklus, vagy a végén a ciklus.
Ciklus utófeltétel kényelmesen alkalmazható olyan esetekben, ahol a szükséges feltételeket, hogy ellenőrizze a kiszámított értéket a kifejezés, amely azután kerül sor a hurok (lásd. A fenti példa a bemeneti szám 0 és 10).
C ciklus előfeltétele használunk, ha az összes bevont változók a kifejezés az a feltétel, tesztelt, előre inicializált, de a pontos szám a ciklusiteráció nem ismert vagy gyanított nehezen végrehajtható módosítását változók részt vesz a kialakulását a feltételek a ciklus ismétlődik.
Ha a ciklus úgy tervezték, hogy egy paramétert, amely előre ismert, az ismétlések száma és a fokozatos változást, annál előnyösebb a parametrikus ciklust. Ez nagyon kényelmes használni a parametrikus ciklus, amikor dolgozik tömbök végiglépkedhetünk az elemeket.

Az üzemeltetők szakadást és folytassa a ciklus szünet, és továbbra is

A test a hurok, akkor bármilyen piaci ciklus interrupt - szünet, és továbbra is a ciklus - folytatja.

A break utasítás, hogy kilépjen a hurok nem fejezte be azt.
continue utasítás lehetővé teszi, hogy kihagyja a hurok test szereplők és kezdődik egy új iteráció.

Példa a Cu. Kimenete 0-99 alatti főátlójában

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () az (int i = 0; i<10; i++) // цикл для десятков
<
A (int j = 0; j <10; j++) // цикл для единиц
if (j> i) //, ha a szám nagyobb, mint a egységek száma közötti tucat
break; // kilép a belső hurok, és lépni egy új vonal
printf ( "% 2d" i * 10 + j.); // megjeleníti a számított szám (2 ismerős), és a tér
>
printf ( "\ n"); // lefordítani a külső hurok vonal
>
getchar (); // scanf () alkalmazunk,
vissza 0; // így a konzol elfér egyetlen hívás getchar ()
>

Példa a Cu. Kimenete 0-99 kivéve végződésű 5 vagy 8

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () az (int i = 0; i<10; i++) // цикл для десятков
<
A (int j = 0; j <10; j++) // цикл для единиц
if ((j == 5) || (j == 8)) //, ha az egységek száma egyenlő szám 5 vagy 8,
tovább; // lépni a következő iteráció a hurok
printf ( "% 2d" i * 10 + j.); // megjeleníti a számított szám (2 ismerős), és a tér
>
printf ( "\ n"); // lefordítani a külső hurok vonal
>
getchar (); // scanf () alkalmazunk,
vissza 0; // így a konzol elfér egyetlen hívás getchar ()
>

Ha a beágyazott hurok szereplő intézkedések megtörni, és továbbra is csak a legbelső szerkezet, amely azokat tartalmazza.

feltétel nélküli ugrást goto nyilatkozat

Általános formája

goto címke;
.
Mark. művelet;

Példa a Cu. Nyomtató egész számokat 0-5.

#define _CRT_SECURE_NO_WARNINGS // a lehetőségét, hogy a scanf
#include
int main () int k = 5;
M1: if (k <0) // если k<0,
goto M2; // mozog az M2 jelzés (kilép a program)
printf (k "".); // kiírja k
k--; // csökkentő k 1
goto M1; // át megjelölni M1 (ismételje meg a fenti műveletet)
M2: getchar ();
vissza 0;
>

A használata a goto nyilatkozatot C programok nélkül a szélsőséges szükségességét nem ajánlott, mert ez vezethet számos kapcsolódó hibák nehezen olvasható a program kódját. Használata ciklus üzemeltetők lehetővé teszi gyakorlatilag megszünteti annak szükségességét, hogy a goto utasítást.

Kapcsolódó cikkek