Smyčky v C: Příkazy For, While, Do While looping [Příklady]

Co je Loop v C?

Opakování příkazů v C proveďte posloupnost příkazů mnohokrát, dokud se uvedená podmínka nestane nepravdivou. Smyčka v C se skládá ze dvou částí, těla smyčky a řídicího příkazu. Řídicí příkaz je kombinací některých podmínek, které řídí, aby se tělo smyčky spustilo, dokud se zadaná podmínka nestane nepravdivou. Účelem smyčky C je opakovat stejný kód několikrát.

Typy smyček v C

V závislosti na pozici řídicího příkazu v programu je cyklický příkaz v C klasifikován do dvou typů:

1. Vstupní řízená smyčka

2. Opusťte řízenou smyčku

V vstupní řídicí smyčka v C, podmínka je zkontrolována před provedením těla smyčky. Nazývá se také jako smyčka předběžné kontroly.

V výstupní řízená smyčka, podmínka je zkontrolována po provedení těla smyčky. Nazývá se také jako smyčka následné kontroly.

Typy smyček v C
Vzorová smyčka

Podmínky řízení musí být dobře definovány a specifikovány, jinak se smyčka spustí nekonečněkrát. Cyklus, který se nepřestane vykonávat a zpracuje příkazy tolikrát, se nazývá an nekonečná smyčka. Nekonečná smyčka se také nazývá „Nekonečná smyčka.“ Níže jsou uvedeny některé vlastnosti nekonečné smyčky:

1. Není specifikována žádná podmínka ukončení.

2. Zadané podmínky se nikdy nesplní.

Zadaná podmínka určuje, zda se má tělo smyčky spustit nebo ne.

Programovací jazyk 'C' nám poskytuje tři typy konstrukcí smyček:

1. Smyčka while

2. Smyčka do-while

3. Smyčka for

Ne. Typ smyčky Description
1. Zatímco Loop V cyklu while je podmínka vyhodnocena před zpracováním těla smyčky. Pokud je podmínka pravdivá, pak a teprve potom se provede tělo smyčky.
2. Do-While Loop Ve smyčce do...while se podmínka vždy provede po těle smyčky. Nazývá se také výstupní řízená smyčka.
3. Pro smyčku Ve smyčce for je počáteční hodnota provedena pouze jednou, poté podmínka testuje a porovnává čítač s pevnou hodnotou po každé iteraci a zastaví cyklus for, když je vrácena hodnota false.

Zatímco Loop v C

Smyčka while je nejpřímější strukturou smyčky. Zatímco syntaxe smyčky v programovacím jazyce C je následující:

Syntaxe While Loop v C

while (condition) {
             statements;
}

Jedná se o vstupní řízenou smyčku. V cyklu while je podmínka vyhodnocena před zpracováním těla smyčky. Pokud je podmínka pravdivá, pak a teprve potom se provede tělo smyčky. Po provedení těla smyčky se řízení opět vrátí na začátek a podmínka se zkontroluje, zda je pravdivá, stejný proces se provede, dokud se podmínka nestane nepravdivou. Jakmile se podmínka stane nepravdivou, ovládací prvek opustí smyčku.

Po opuštění smyčky řízení přejde na příkazy, které jsou bezprostředně za smyčkou. Tělo cyklu může obsahovat více než jeden příkaz. Pokud obsahuje pouze jeden příkaz, pak složené závorky nejsou povinné. Je však dobrým zvykem používat složené závorky, i když máme v těle jediný příkaz.

Pokud ve smyčce while není podmínka pravdivá, tělo smyčky se neprovede ani jednou. Liší se to ve smyčce do while, kterou brzy uvidíme.

Následující program ilustruje smyčku while v příkladu programování v jazyce C:

#include<stdio.h>
#include<conio.h>
int main()
{
	int num=1;	//initializing the variable
	while(num<=10)	//while loop with condition
	{
		printf("%d\n",num);
		num++;		//incrementing operation
	}
	return 0;
}

Výstup:

1
2
3
4
5
6
7
8
9
10

Výše uvedený program ilustruje použití smyčky while. Ve výše uvedeném programu jsme vytiskli řadu čísel od 1 do 10 pomocí smyčky while.

Zatímco Loop v C
Zatímco smyčka v C programování
  1. Inicializovali jsme proměnnou nazvanou num s hodnotou 1. Budeme tisknout od 1 do 10, proto je proměnná inicializována hodnotou 1. Pokud chcete tisknout od 0, přiřaďte při inicializaci hodnotu 0.
  2. V cyklu while jsme poskytli podmínku (num<=10), což znamená, že smyčka bude provádět tělo, dokud hodnota num nebude 10. Poté bude smyčka ukončena a řízení bude mimo smyčku.
  3. V těle smyčky máme funkci tisku, která vytiskne naše číslo, a operaci přírůstku, která zvýší hodnotu při každém provedení smyčky. Počáteční hodnota num je 1, po provedení se stane 2 a během dalšího provedení se stane 3. Tento proces bude pokračovat, dokud se hodnota nezmění na 10 a poté vytiskne sérii na konzoli a ukončí smyčku .

\n se používá pro účely formátování, což znamená, že hodnota bude vytištěna na novém řádku.

Smyčka Do-While v C

Cyklus do...while v C je podobný cyklu while s tím rozdílem, že podmínka se vždy vykoná po těle cyklu. Nazývá se také výstupní řízená smyčka.

Syntaxe smyčky do while v programovacím jazyce C je následující:

Syntaxe Do-While Loop v C

 do {
  statements
} while (expression);

Jak jsme viděli ve smyčce while, tělo se provede tehdy a jen tehdy, když je podmínka pravdivá. V některých případech musíme provést tělo cyklu alespoň jednou, i když je podmínka nepravdivá. Tento typ operace lze dosáhnout použitím smyčky do-while.

V cyklu do-while se tělo cyklu vždy provede alespoň jednou. Po provedení těla pak zkontroluje podmínku. Pokud je podmínka pravdivá, pak znovu provede tělo smyčky, jinak je řízení přeneseno ze smyčky.

Podobně jako u cyklu while, jakmile ovládací prvek opustí cyklus, jsou provedeny příkazy, které jsou bezprostředně po cyklu.

Kritický rozdíl mezi smyčkou while a do-while je v tom, že v cyklu while je while zapsáno na začátku. V cyklu do-while se podmínka while zapisuje na konec a končí středníkem (;)

Následující program smyčky v C ilustruje fungování smyčky do-while:

Níže je uvedena smyčka do-while v příkladu C pro tisk tabulky čísla 2:

#include<stdio.h>
#include<conio.h>
int main()
{
	int num=1;	//initializing the variable
	do	//do-while loop 
	{
		printf("%d\n",2*num);
		num++;		//incrementing operation
	}while(num<=10);
	return 0;
}

Výstup:

2
4
6
8
10
12
14
16
18
20

Ve výše uvedeném příkladu jsme vytiskli tabulku násobení 2 pomocí smyčky do-while. Pojďme se podívat, jak program dokázal vytisknout sérii.

Smyčka Do-While v C
Do-While Loop v programování C
  1. Nejprve jsme inicializovali proměnnou 'num' s hodnotou 1. Poté jsme napsali cyklus do-while.
  2. Ve smyčce máme funkci tisku, která vytiskne sérii vynásobením hodnoty num 2.
  3. Po každém přírůstku se hodnota num zvýší o 1 a vytiskne se na obrazovku.
  4. Zpočátku je hodnota num 1. V těle smyčky se funkce tisku provede takto: 2*num kde num=1, potom 2*1=2, takže se vypíše hodnota dva. Toto bude pokračovat, dokud se hodnota num nestane 10. Poté bude smyčka ukončena a bude proveden příkaz, který je bezprostředně za smyčkou. V tomto případě vraťte 0.

Pro smyčku v C

Smyčka for je efektivnější struktura smyčky v programování 'C'. Obecná struktura syntaxe cyklu for v jazyce C je následující:

Syntaxe For Loop v C

for (initial value; condition; incrementation or decrementation ) 
{
  statements;
}
  • Počáteční hodnota cyklu for se provede pouze jednou.
  • Podmínka je booleovský výraz, který testuje a porovnává čítač s pevnou hodnotou po každé iteraci a zastaví cyklus for, když je vrácena hodnota false.
  • Inkrementace/dekrementace zvyšuje (nebo snižuje) čítač o nastavenou hodnotu.

Následující program ilustruje smyčku for v příkladu programování v jazyce C:

#include<stdio.h>
int main()
{
	int number;
	for(number=1;number<=10;number++)	//for loop to print 1-10 numbers
	{
		printf("%d\n",number);		//to print the number
	}
	return 0;
}

Výstup:

1
2
3
4
5
6
7
8
9
10

Výše uvedený program vytiskne číselnou řadu od 1 do 10 pomocí smyčky for.

Pro smyčku v C
Pro programování smyčky v C
  1. Vyhlásili jsme a proměnlivý datového typu int pro ukládání hodnot.
  2. Ve smyčce for jsme v inicializační části přiřadili proměnné číslo hodnotu 1. V části podmínky jsme specifikovali naši podmínku a poté část inkrementace.
  3. V těle smyčky máme funkci tisku pro tisk čísel na nový řádek v konzole. Máme hodnotu jedna uloženou v čísle, po první iteraci se hodnota zvýší a stane se 2. Nyní má proměnná číslo hodnotu 2. Podmínka bude znovu zkontrolována a protože podmínka je pravdivá, provede se smyčka, a vytiskne dvě na obrazovku. Tato smyčka bude pokračovat, dokud se hodnota proměnné nestane 10. Poté bude smyčka ukončena a na obrazovce se vytiskne řada 1-10.

V C může mít cyklus for více výrazů oddělených čárkami v každé části.

Například:

for (x = 0, y = num; x < y; i++, y--) { 
  statements; 
}

Také můžeme přeskočit výraz počáteční hodnoty, podmínku a/nebo přírůstek přidáním středníku.

Například:

int i=0;
int max = 10;
for (; i < max; i++) {
  printf("%d\n", i);
}

Všimněte si, že smyčky lze také vnořit tam, kde je vnější smyčka a vnitřní smyčka. Pro každou iteraci vnější smyčky vnitřní smyčka opakuje celý svůj cyklus.

Zvažte následující příklad s více podmínkami ve smyčce for, který používá vnořenou smyčku for v programování v jazyce C k výstupu tabulky násobení:

#include <stdio.h>
int main() {
int i, j;
int table = 2;
int max = 5;
for (i = 1; i <= table; i++) { // outer loop
  for (j = 0; j <= max; j++) { // inner loop
    printf("%d x %d = %d\n", i, j, i*j);
  }
  printf("\n"); /* blank line between tables */
}}

Výstup:

1 x 0 = 0
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5

2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10

Vnoření smyček for může být provedeno až do jakékoli úrovně. Vnořené smyčky by měly být adekvátně odsazeny, aby byl kód čitelný. V některých verzích 'C' je vnoření omezeno na 15 smyček, ale některé poskytují více.

Vnořené smyčky se většinou používají v aplikacích pole, které uvidíme v dalších tutoriálech.

Prohlášení o přerušení v C

Příkaz break se používá hlavně v příkaz switch. Je také užitečné pro okamžité zastavení smyčky.

Uvažujeme následující program, který zavádí přerušení pro ukončení cyklu while:

#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
  if (num == 3)
    break;
  printf("%d\n", num);
  num--;
}}

Výstup:

5
4

Pokračovat v prohlášení v C

Pokud chcete přeskočit na další iteraci, ale zůstat ve smyčce, měli byste použít příkaz continue.

Například:

#include <stdio.h>
int main() {
int nb = 7;
while (nb > 0) {
  nb--;
  if (nb == 5)
    continue;
 printf("%d\n", nb);
}}

Výstup:

6
4
3
2
1

Hodnota 5 je tedy přeskočena.

Jakou smyčku vybrat?

Výběr smyčky je pro programátora vždy obtížný úkol, pro výběr smyčky proveďte následující kroky:

  • Analyzujte problém a zkontrolujte, zda vyžaduje smyčku před testem nebo po testu.
  • Pokud je vyžadován předběžný test, použijte chvíli nebo pro smyčku.
  • Pokud je vyžadován post-test, použijte smyčku do-while.

Shrnutí

  • Definujte smyčku v C: Smyčka je jedním z klíčových konceptů na jakémkoli Programovací jazyk. Smyčky v jazyce C jsou implementovány pomocí podmíněných příkazů.
  • Blok příkazů řízení smyčky v C se provádí tolikrát, dokud se podmínka nestane nepravdivou.
  • Smyčky v programování v jazyce C jsou 2 typů: řízené vstupem a řízené odchodem.
  • Seznam různých instrukcí pro řízení smyčky v C: Programování C nám poskytuje 1) zatímco 2) do-while a 3) pro instrukce řízení smyčky.
  • Programování smyčky For a while jsou smyčky řízené vstupem v jazyce C.
  • Do-while je výstupní řídicí smyčka v C.