Цикли в C: Изявления за цикли For, While, Do While [Примери]
Какво е Loop в C?
Изявления за цикъл в C изпълнете последователността от оператори много пъти, докато заявеното условие стане невярно. Цикълът в C се състои от две части, тяло на цикъл и оператор за управление. Контролният оператор е комбинация от някои условия, които насочват тялото на цикъла да се изпълни, докато определеното условие стане невярно. Целта на C цикъла е да повтори един и същ код няколко пъти.
Видове цикли в C
В зависимост от позицията на контролния оператор в програмата, цикличният оператор в C се класифицира на два типа:
1. Контролиран входен контур
2. Излезте от контролирания контур
В входен контролен контур в C, условие се проверява преди изпълнение на тялото на цикъл. Нарича се още цикъл за предварителна проверка.
В изходен контролиран контур, условие се проверява след изпълнение на тялото на цикъл. Нарича се още цикъл за последваща проверка.
Контролните условия трябва да бъдат добре дефинирани и специфицирани, в противен случай цикълът ще се изпълнява безкраен брой пъти. Цикълът, който не спира да се изпълнява и обработва изразите няколко пъти, се извиква като an безкраен цикъл. Безкраен цикъл се нарича още „Безкраен цикъл.” Следват някои характеристики на безкраен цикъл:
1. Не е посочено условие за прекратяване.
2. Посочените условия никога не отговарят.
Посоченото условие определя дали да се изпълни тялото на цикъла или не.
Езикът за програмиране "C" ни предоставя три типа конструкции на цикъл:
1. Цикълът while
2. Цикълът do-while
3. Цикълът for
Sr. No. | Тип цикли | Descriptйон |
---|---|---|
1. | Докато Loop | В цикъла while дадено условие се оценява преди обработката на тялото на цикъла. Ако дадено условие е вярно тогава и само тогава се изпълнява тялото на цикъл. |
2. | Do-While Loop | В do…while цикъл условието винаги се изпълнява след тялото на цикъл. Нарича се още цикъл с контролиран изход. |
3. | За Loop | В for цикъл първоначалната стойност се изпълнява само веднъж, след това условието тества и сравнява брояча с фиксирана стойност след всяка итерация, спирайки for цикъла, когато се върне false. |
Докато цикъл в C
Цикълът while е най-простата структура за цикъл. Синтаксисът на цикъла while в езика за програмиране C е както следва:
Синтаксис на цикъла While в C
while (condition) { statements; }
Това е входно контролирана верига. В цикъла while дадено условие се оценява преди обработката на тялото на цикъла. Ако дадено условие е вярно тогава и само тогава се изпълнява тялото на цикъл. След като се изпълни тялото на цикъл, контролът отново се връща в началото и условието се проверява дали е вярно, същият процес се изпълнява, докато условието стане невярно. След като условието стане невярно, управлението излиза извън цикъла.
След излизане от цикъла контролът преминава към операторите, които са непосредствено след цикъла. Тялото на цикъл може да съдържа повече от един оператор. Ако съдържа само един израз, тогава фигурните скоби не са задължителни. Въпреки това е добра практика да използвате фигурните скоби, дори ако имаме един израз в тялото.
В цикъла while, ако условието не е вярно, тогава тялото на цикъла няма да бъде изпълнено, нито веднъж. Различно е в do while цикъла, който ще видим скоро.
Следващата програма илюстрира цикъл while в пример за програмиране на 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; }
Изход:
1 2 3 4 5 6 7 8 9 10
Горната програма илюстрира използването на цикъла while. В горната програма сме отпечатали серии от числа от 1 до 10 с помощта на цикъл while.
- Инициализирахме променлива, наречена num, със стойност 1. Ще печатаме от 1 до 10, следователно променливата се инициализира със стойност 1. Ако искате да печатате от 0, тогава задайте стойност 0 по време на инициализацията.
- В цикъл while сме предоставили условие (num<=10), което означава, че цикълът ще изпълни тялото, докато стойността на num стане 10. След това цикълът ще бъде прекратен и управлението ще падне извън цикъла.
- В тялото на цикъл имаме функция за печат, за да отпечатаме нашия номер, и операция за увеличаване, за да увеличим стойността за изпълнение на цикъл. Първоначалната стойност на num е 1, след изпълнението тя ще стане 2, а по време на следващото изпълнение ще стане 3. Този процес ще продължи, докато стойността стане 10 и след това ще отпечата серията на конзолата и ще прекрати цикъла .
\n се използва за целите на форматирането, което означава, че стойността ще бъде отпечатана на нов ред.
Do-While цикъл в C
Цикълът do...while в C е подобен на цикъла while, с изключение на това, че условието винаги се изпълнява след тялото на цикъла. Нарича се още цикъл с контролиран изход.
Синтаксисът на do while цикъл в езика за програмиране C е както следва:
Синтаксис на Do-While Loop в C
do { statements } while (expression);
Както видяхме в цикъла while, тялото се изпълнява тогава и само ако условието е вярно. В някои случаи трябва да изпълним тялото на цикъла поне веднъж, дори ако условието е невярно. Този тип операция може да бъде постигната чрез използване на do-while цикъл.
В цикъла do-while тялото на цикъл винаги се изпълнява поне веднъж. След като тялото се изпълни, то проверява състоянието. Ако условието е вярно, то отново ще изпълни тялото на цикъл, в противен случай управлението се прехвърля извън цикъла.
Подобно на цикъла while, след като контролата излезе от цикъла, операторите, които са непосредствено след цикъла, се изпълняват.
Критичната разлика между while и do-while цикъла е, че в while цикъла while се записва в началото. В do-while цикъл, докато условието се записва в края и завършва с точка и запетая (;)
Следната циклична програма в C илюстрира работата на do-while цикъл:
По-долу е даден цикъл do-while в пример на C за отпечатване на таблица с номер 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; }
Изход:
2 4 6 8 10 12 14 16 18 20
В горния пример сме отпечатали таблица за умножение на 2 с помощта на do-while цикъл. Нека да видим как програмата успя да отпечата серията.
- Първо сме инициализирали променлива 'num' със стойност 1. След това сме написали do-while цикъл.
- В цикъл имаме функция за печат, която ще отпечата серията, като умножи стойността на num с 2.
- След всяко увеличение стойността на num ще се увеличава с 1 и ще се отпечатва на екрана.
- Първоначално стойността на num е 1. В тялото на цикъл функцията за печат ще бъде изпълнена по следния начин: 2*num, където num=1, след това 2*1=2, следователно ще бъде отпечатана стойност две. Това ще продължи, докато стойността на num стане 10. След този цикъл ще бъде прекратен и ще бъде изпълнен оператор, който е непосредствено след цикъла. В този случай върнете 0.
For цикъл в C
Цикълът for е по-ефективна структура на цикъла в програмирането на C. Общата структура на синтаксиса на for цикъл в C е както следва:
Синтаксис на For Loop в C
for (initial value; condition; incrementation or decrementation ) { statements; }
- Първоначалната стойност на цикъла for се изпълнява само веднъж.
- Условието е булев израз, който тества и сравнява брояча с фиксирана стойност след всяка итерация, спирайки for цикъла, когато се върне false.
- Увеличаването/намаляването увеличава (или намалява) брояча със зададена стойност.
Следната програма илюстрира цикъла for в пример за програмиране на 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; }
Изход:
1 2 3 4 5 6 7 8 9 10
Горната програма отпечатва сериите от числа от 1-10 с помощта на цикъл for.
- Обявили сме а променлив от тип данни int за съхраняване на стойности.
- В цикъла for, в частта за инициализация, сме присвоили стойност 1 на променливата number. В частта с условието сме посочили нашето условие и след това частта за увеличаване.
- В тялото на цикъла имаме функция за отпечатване на числата на нов ред в конзолата. Имаме стойност едно, съхранена в число, след първата итерация стойността ще бъде увеличена и ще стане 2. Сега променливата номер има стойност 2. Условието ще бъде проверено отново и тъй като условието е вярно, ще се изпълни цикъл, и ще отпечата две на екрана. Този цикъл ще продължи да се изпълнява, докато стойността на променливата стане 10. След това цикълът ще бъде прекратен и серия от 1-10 ще бъде отпечатана на екрана.
В C цикълът for може да има множество изрази, разделени със запетаи във всяка част.
Например:
for (x = 0, y = num; x < y; i++, y--) { statements; }
Също така можем да пропуснем израза на първоначалната стойност, условието и/или увеличението, като добавим точка и запетая.
Например:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
Забележете, че циклите могат да бъдат вложени и там, където има външен цикъл и вътрешен цикъл. За всяка итерация на външния цикъл, вътрешният цикъл повтаря целия си цикъл.
Разгледайте следния пример с множество условия в for цикъл, който използва вложен for цикъл в C програмиране за извеждане на таблица за умножение:
#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 */ }}
Изход:
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
Влагането на for цикли може да се извърши до всяко ниво. Вложените цикли трябва да имат подходящ отстъп, за да направят кода четим. В някои версии на „C“ влагането е ограничено до 15 цикъла, но някои предоставят повече.
Вложените цикли се използват най-вече в масивни приложения, които ще видим в следващите уроци.
Изявление за прекъсване в C
Изявлението break се използва главно в изявление за превключване. Също така е полезно за незабавно спиране на цикъл.
Разглеждаме следната програма, която въвежда прекъсване за излизане от цикъла while:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
Изход:
5 4
Продължете твърдението в C
Когато искате да прескочите до следващата итерация, но да останете в цикъла, трябва да използвате оператора continue.
Например:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
Изход:
6 4 3 2 1
Така че стойността 5 се пропуска.
Кой контур да изберете?
Изборът на цикъл винаги е трудна задача за програмист, за да изберете цикъл, направете следните стъпки:
- Анализирайте проблема и проверете дали изисква предварителен или следтестов цикъл.
- Ако е необходим предварителен тест, използвайте време или за цикъл.
- Ако се изисква пост-тест, използвайте do-while цикъл.
Oбобщение
- Дефинирайте цикъл в C: Цикълът е едно от ключовите понятия във всеки Програмен език. Циклите в езика C се реализират с помощта на условни изрази.
- Блок от оператори за управление на цикъл в C се изпълняват няколко пъти, докато условието стане невярно.
- Циклите в програмирането на C са от 2 вида: контролирани на входа и контролирани на изхода.
- Избройте различни инструкции за управление на цикъл в C: Програмирането на C ни предоставя 1) while 2) do-while и 3) инструкции за управление на цикъл.
- Програмирането на цикъла for и while C е цикли с контрол на входа на езика C.
- Do-while е контролен цикъл за изход в C.