+
Вход

Въведи своя e-mail и парола за вход, ако вече имаш създаден профил в DEV.BG/Jobs

Забравена парола?
+
Създай своя профил в DEV.BG/Jobs

За да потвърдите, че не сте робот, моля отговорете на въпроса, като попълните празното поле:

73+36 =
+
Забравена парола

Въведи своя e-mail и ще ти изпратим твоята парола

C++ Цикли for, while и do-while

Цикълът FOR

Циклите се използват за многократното изпълнение на даден код. За пример, ако имате някаква задача да изкарате числата от 1 до 10 в конзолата, вместо да пишете 10 cout-а, може да използвате цикъла for по този начин:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.      int x;
  6.      for (= 1; x <= 10; x++)
  7.      {
  8.      cout << x <<endl;
  9.     }
  10.     return 0;
  11. }

Това е основната структура на цикъла FOR. Първо си декларираме една променлива x, с помощта на която да отброяваме. След това с помощта на трите параметъра в скобите на for цикъла определяме следните неща. Първо оределяме началната стойност на променливата x. Която в случая е 1. На второ място поставяме условието при което да се изпълнява кодът, тоест докато това условие е вярно, цикълът ще се върти. Накрая x++ означава, че всеки път когато се изпълни кодът, стойността на променливата x ще се увеличава с 1. В случая програмата ще ви изкара числата от 1 до 10 всяко на нов ред. Ако в условието напишете x <= 20, ще ви изкара съответно всички числа от 1 до 20. Ако пък на третата позиция напишете x+=2, ще ви изкара всички нечетни числа между 1 и 20. Опитайте се да напишете тези две програми самостоятелно.

Още веднъж по-нагледно, структурата е следната:

  1. for([1], [2], [3]){
  2. /* code */
  3. }

[1] Тук пишете израза, който искате да се изпълни еднократно непосредствено преди цикъла да започне да се върти. Обикновено се използва за инициализиране (задаване на начална стойност) на променливата.
[2] Тук пишете условието, при което цикълът трябва да се върти. В момента, в който условието стане грешно, програмата излиза от цикъла.
[3] Тук пишете какво искате да се случва непосредствено СЛЕД всяко завъртане на цикъла.

Цикълът WHILE

Цикълът while върши почти същата работа, каквато и цикъла for, ето един пример с while:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.      int x = 1;
  6.      while (<= 10)
Днес те питаме…

Каква е основната причина да си търсиш нова работа?
Loading ... Loading …
  •      {
  •      cout << x << endl;
  •     x = x + 1;
  •     }
  •     return 0;
  • }
  • Изходът отново са числата от 1 до 10, всяко едно на нов ред. Разликата тук е, че задавате стойност на променливата още при дефинирането и, а увеличаването и се прави в самия цикъл. Ако пропуснете да напишете x=x+1, което съкратено може да напишете x+=1, или още по-съкратено x++ (Справка C++ Оператори), стойността на x винаги ще бъде по-малка от 10 и ще се получи безкраен цикъл, което със сигурност не целим в момента.

    Има и още един цикъл, който се различава малко от предишния – do while:

    1. #include <iostream>
    2. using namespace std;
    3. int main()
    4. {
    5.      int x = 1;
    6.      do
    7.      {
    8.      cout << x << endl;
    9.     x = x + 1;
    10.     }
    11.    while (<= 10);
    12.    return 0;
    13. }

    Както виждате разликата е много малка и се състои в това, че ПЪРВО се изпълнява кодът, а после се проверява условието. Това в някои ситуации е от полза, защото гарантира поне едно изпълнение на кода между скобите, независимо от вярността на условието. Така че, ако желаете кодът ви да се изпълни поне един път, това е цикълът, който трябва да изберете.

    Това бяха трите вида цикли в C++, не са толкова сложни колкото изглеждат първия път. С малко повече упражнения, ще придобиете навик да ги използвате и няма да имате проблеми. Сега най-добре си поиграйте с примерите и се опитайте да напишете ваши собствени цикли, променяйки стойностите, защото най-добрият учител е практиката (от опит ви го казвам).

    И като стана на въпрос за практика, веднага получавате една задача към урока:

    Задача: Разширете функциалността на играта, която започнахме да пишем в предишният урок (Условни оператори), като добавите възможност на потребителя да играе и да се опитва да познае числото, докато всъщност не го познае. Може да му помогнете като му казвате дали числото, което е въвел е по-голямо или по-малко от числото, което трябва да познае (в този случай увеличете диапазона на числата от 0 до 100). Изкарайте накрая броя опити, които са били необходими на играча да познае числото.
    Hint: Може да използвате rand() % 100, за да генерирате случайно число между 0 и 99.

    Автор: Мартин Михайлов