Smyčky v jazyce C: For, While, Do While looping Příklady prohlášení

⚡ Chytré shrnutí

Smyčky v jazyce C opakují blok příkazů, dokud se řídicí podmínka nestane nepravdivou, a jazyk poskytuje tři konstrukce – smyčku while, smyčku do-while a smyčku for – pro řízené opakování při vstupu a výstupu.

  • 🔁 Anatomie smyčky: Každá smyčka v jazyce C spáruje skupinu opakovaných příkazů s řídicí podmínkou, která určuje, kdy opakování skončí.
  • 🚪 Vstup vs. výstup: Smyčky while a for s řízeným vstupem nejprve testují podmínku, zatímco smyčka do-while s řízeným výstupem vždy provede své tělo jednou.
  • ♻️ Zatímco smyčka: Smyčka while kontroluje svou podmínku před každým průchodem, což je vhodné pro případy, kdy počet iterací není předem znám.
  • 🔂 Smyčka Do-while: Smyčka do-while provede tělo cyklu před testováním, takže zaručuje jedno spuštění, i když je podmínka nepravdivá.
  • 🔢 Pro smyčku: Smyčka for vkládá inicializaci, podmínku a aktualizaci do jednoho řádku, což je ideální pro počítání v pevném rozsahu.
  • Přestávka a pokračování: Příkaz break okamžitě ukončí smyčku, zatímco příkaz continue přeskočí na další iteraci bez opuštění smyčky.

Smyčky v jazyce C: For, While, Do While looping Prohlášení

Co je Loop v C?

Toaletaping Příkazy v jazyce C provádějí posloupnost příkazů mnohokrát, dokud se zadaná podmínka nestane nepravdivou. Smyčka v jazyce C se skládá ze dvou částí, těla smyčky a řídicího příkazu. Řídicí příkaz je kombinací určitých podmínek, které řídí tělo smyčky, aby se provádělo, dokud se zadaná podmínka nestane nepravdivou. Účelem smyčky v jazyce C je několikrát opakovat stejný kód.

Typy smyček v C

V závislosti na pozici řídicího příkazu v programu, looping Příkaz v jazyce C se dělí na dva typy:

  1. Vstupní řízená smyčka
  2. Výstupní řízená smyčka

Ve vstupní řídicí smyčce v jazyce C se před provedením těla smyčky kontroluje podmínka. Nazývá se také smyčka předběžné kontroly.

V smyčce řízené ukončením se podmínka kontroluje po provedení těla smyčky. Nazývá se také smyčka s následnou kontrolou.

Typy smyček v C

Vzorová smyčka

Řídicí podmínky musí být dobře definovány a specifikovány, jinak se smyčka provede nekonečně mnohokrát. Smyčka, která se nezastaví a zpracovává příkazy několikrát, se nazývá nekonečná smyčka. Nekonečná smyčka se také nazývá „nekonečná smyčka“. Následují některé charakteristiky nekonečné smyčky:

  1. Není specifikována žádná podmínka ukončení.
  2. Stanovené 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 V cyklu for se počáteční hodnota provede pouze jednou, poté podmínka po každé iteraci testuje a porovnává čítač s pevnou hodnotou, stopping smyčka for, když je vrácena hodnota false.

Zatímco Loop v C

Smyčka while je nejjednodušší způsob, jak na to.ping struktura. Syntaxe cyklu While 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ěnlivý s názvem 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 hodnotu 0 během inicializace.
  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 .

Znak '\n' se používá pro formátovací účely, 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;
}
  1. Počáteční hodnota cyklu for se provede pouze jednou.
  2. Podmínka je booleovský výraz, který po každé iteraci testuje a porovnává čítač s pevnou hodnotou, stopping smyčka for, když je vrácena hodnota false.
  3. 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. Deklarovali jsme proměnnou 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řování smyček for lze provádět do libovolné úrovně. Vnořené smyčky by měly být dostatečně odsazeny, aby byl kód čitelný. V některých verzích jazyka 'C' je vnořování omezeno na 15 smyček, ale některé nabízejí i více.

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

Kromě tří typů cyklů nabízí C dva příkazy, které mění způsob, jakým cykly běží zevnitř.

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

Příkaz break se používá hlavně v příkaz switchJe to také užitečné pro okamžité zastaveníping smyčka.

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:

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

Nejčastější dotazy

Nekonečná smyčka běží donekonečna, pokud se její podmínka nikdy nestane nepravdivou. Zabraňte tomu aktualizací proměnné smyčky uvnitř těla smyčky a ujistěte se, že podmínka může být nakonec splněna, nebo přidejte příkaz break jako ochrannou opatření.

Příkaz break zcela zastaví smyčku a přesune řízení na první příkaz za ní. Příkaz continue pouze přeskočí zbývající příkazy v aktuální iteraci a skočí na další cyklus smyčky.

Standardní C nemá vestavěnou smyčku for-each nebo založenou na rozsahu, jako je C++ or PythonPole iterujete ručně pomocí smyčky for nebo while s použitím indexu nebo ukazatele, který prochází každým prvkem.

Ne. Příkaz goto provede bezpodmínečný skok na označený řádek a může napodobit loo.ping, ale nejedná se o strukturovanou smyčku. Použití for, while nebo do-while udržuje kód mnohem čitelnější.

Operátor čárka umožňuje jedné smyčce for spravovat několik proměnných najednou. V cyklu for (x = 0, y = n; x < y; x++, y–) jak inicializační, tak aktualizační sekce spustí dva výrazy při každém průchodu.

Ano. Kombinujte podmínky s logickými operátory AND (&&) a OR (||) uvnitř závorek. Například while (a < 10 && b > 0) udržuje looping pouze tehdy, pokud jsou splněny obě podmínky.

Ano. Asistenti kódování s umělou inteligencí dokáží vytvářet smyčky while, do-while a for z prostého popisu, rozpoznávat chyby typu „odchylka o jednu“ a označovat podmínky, které mohou běžet donekonečna. RevZobrazení výstupu je i nadále nezbytné, protože generovaná logika není vždy správná.

GitHub Copilot Navrhuje dokončení těl cyklů během psaní, automaticky doplňuje čítače a podmínky a navrhuje vzory vnořených cyklů z krátkého komentáře. Funguje v populárních editorech a zrychluje repetitivní kódování v jazyce C.

Shrňte tento příspěvek takto: