Jazyk C - cykly

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání


Cykly

Cykly v programovaní sa začnú používať, keď potrebujeme opakovane vykonávať blok príkazov. Napríklad: Predpokladajme, že chceme vytlačiť „Hello World“ 10-krát. Toto sa dá urobiť dvoma spôsobmi, ako je uvedené nižšie:

Spôsob, ako to urobiť, je napísať printf() 10-krát.

 1 #include <stdio.h> 
 2   
 3 int main() 
 4 { 
 5     printf( "Hello World\n"); 
 6     printf( "Hello World\n"); 
 7     printf( "Hello World\n"); 
 8     printf( "Hello World\n"); 
 9     printf( "Hello World\n"); 
10     printf( "Hello World\n"); 
11     printf( "Hello World\n"); 
12     printf( "Hello World\n"); 
13     printf( "Hello World\n"); 
14     printf( "Hello World\n"); 
15       
16     return 0; 
17 }


V cykle musí byť príkaz napísaný iba raz a cyklus bude vykonaný 10-krát, ako je uvedené nižšie. V počítačovom programovaní je cyklus postupnosť inštrukcií, ktorá sa opakuje, až kým sa nedosiahne určitá podmienka.

Existujú hlavne dva typy cyklov:

Vstupom a výstupom riadené cykly

Vstupom riadený cyklus: V tomto type cyklov sa testovacie podmienky testujú pred vstupom do cyklu. For cyklus a While cyklus sú vstupom riadené slučky.


Výstupom riadené cykly: V tomto type cyklov sa testovacie podmienky testujú alebo hodnotia na konci tela cyklu. Preto sa bude cyklus vykonávať aspoň raz, bez ohľadu na to, či je testovacia podmienka pravdivá alebo nepravdivá. do - while cyklus je výstupom riadený cyklus.



For cyklus

Cyklus For sa používa na opakované vykonávanie bloku príkazov, kým sa daná podmienka nevráti nepravdivo. Cyklus nám umožňuje vykonať n počet krokov spolu na jednom riadku.

Cyklus for sa skláda z 3 častí

  • Inicializačná premenná: V tomto výraze musíme inicializovať počítadlo slučky na nejakú hodnotu. napríklad: int i = 1;
  • Testovací výraz: V tomto výraze musíme testovať stav. Ak sa stav vyhodnotí ako true, vykonáme telo slučky a prejdeme na aktualizáciu výrazu, inak opustíme slučku for. Napríklad: i <= 10;
  • Aktualizácia výrazu: Po vykonaní tela slučky tento výraz zvyšuje alebo zmenšuje premennú slučky o nejakú hodnotu. napríklad: i ++;

Vývojový diagram pre cyklus For


Syntax

for (inicializátor; podmienka; inkrement)
{
 // telo cyklu
}

Hello World skrz cyklus for

 1 #include <stdio.h> 
 2   
 3 int main() 
 4 { 
 5     int i=0; 
 6       
 7     for (i = 1; i <= 10; i++) 
 8     { 
 9         printf( "Hello World\n");     
10     } 
11   
12     return 0; 
13 }

Výstup:

Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World


Príklad vypíš čísla od 1 po 10:

 1 // Napíš čísla od  1 po 10
 2 #include <stdio.h>
 3 
 4 int main() {
 5 
 6   for (int i = 1; i < 11; ++i)
 7   {
 8     printf("%d ", i);
 9   }
10   return 0;
11 }

Výstup:

1
2
3
4
5
6
7
8
9
10

V cykle for sa na riadenie cyklu používa premenná (v našom prípade i). Najprv inicializujte túto premennú cyklu na nejakú hodnotu, potom skontrolujte, či je táto premenná menšia alebo väčšia ako hodnota počítadla. Ak je príkaz pravdivý, vykoná sa telo cyklu a aktualizuje sa premenná. Kroky sa opakujú, až kým nedôjde k výstupu.


Cyklus While

Pri štúdiu cyklu for sme vedeli, že počet iterácií je známy vopred, t. j. Koľkokrát sa vykoná telo cyklu, zatiaľ čo while cyklus sa používa v situáciách, keď vopred nevieme presný počet iterácií slučky. Vykonanie slučky je ukončené na základe testovacích podmienok.


Vlasnosti cyklu while:

  • Na kontrolu stavu sa používa podmienený výraz. Príkazy definované vo vnútri cyklu while sa budú opakovane vykonávať až do zlyhania danej podmienky.
  • Podmienka bude splnená, ak sa vráti 0. Podmienka bude neplatná, ak vráti akékoľvek nenulové číslo.
  • V slučke while je podmienený výraz povinný.
  • Je možné spustiť cyklus bez tela.
  • V cykle while môžeme mať viac ako jeden podmienený výraz.
  • Ak telo cyklu obsahuje iba jeden príkaz, sú zátvorky voliteľné.


Syntax

Cyklus while pozostáva z troch príkazov ako cyklus for - inicializačný výraz, testovací výraz, aktualizačný výraz. Syntax troch cyklov for,while a do while sa primárne lísie v umiestnení týchto troch príkazov.

inicializačná premenná;
while (testovací_výraz)
{
   // tvrdenie
 
  aktualizácia_výrazu;
}


Vývojový diagram:


Príklady v jazyku c

 1 // C program ktorý ilustruje while cyklus
 2 #include <stdio.h> 
 3   
 4 int main() 
 5 { 
 6     // inicializačný výraz
 7     int i = 1; 
 8   
 9     // testovycí výraz
10     while (i < 6) 
11     { 
12         printf( "Hello World\n");     
13   
14         // aktualizovaný výraz
15         i++; 
16     } 
17   
18     return 0; 
19 }

Výstup

Hello World
Hello World
Hello World
Hello World
Hello World


Vypíš čísla od 1 do 10

1 #include<stdio.h>  
2 int main(){    
3 int i=1;      
4 while(i<=10){      
5 printf("%d \n",i);      
6 i++;      
7 }  
8 return 0;  
9 }

Výstup

1
2
3
4
5
6
7
8
9
10