Linux E X P R E S

Facebook

Programovanie v jazyku C++: Cyklus while (2)

cplusplus.png

Druhý diel sa zapodieva cyklom do while. Dočítate sa o funkcionalite spomenutého cyklu a naučíte sa s ním pracovať na základe ukážkových príkladov.


Do-while cyklus

Cyklus do-while má trochu odlišnú funkcionalitu ako cyklus while. Najprv si ukážeme deklaráciu: 

 do

      telo cyklu

while(testovacia podmienka);

Princípom cyklu do while je ten, že bez ohľadu na podmienku sa cyklus aspoň raz vykoná. Práve slovo do znamená v angličtine robiť. Začne sa vykonávať telo cyklu a až na konci narazí na podmienku, ktorú už verne poznáte. Príklad nám ukáže, ako to funguje. 

1. príklad: Cyklus do while

#include <iostream>    // hlavičkový súbor
 using namespace std;   // priestor mien
 
 int main()   // hlavná funkcia
 {
   int cislo = 0;   // deklarácia premennej
 
   do {  // začiatok cyklu do while
     cout << "Ja som cislo: " << cislo << "\n";   // výpis na obrazovku
     cislo++;   // inkrementácia
   } while (cislo < 5);   // podmienka cyklu do while
 
   return 0;   // koniec programu
 }

Výsledok programu: 

 Ja som cislo: 0
 Ja som cislo: 1
 Ja som cislo: 2
 Ja som cislo: 3
 Ja som cislo: 4

Rozbor programu: 

Po inicializácii premennej začne cyklus do while. Prvé vykonanie cyklu je automatické. Po prvej iterácii sa testuje podmienka. Ak je true, tak sa opäť vykoná cyklus. Ak false, tak cyklus skončil a pokračuje sa ďalej v programe.

2. príklad:  Vykoná sa aspoň jedná iterácia? 

#include <iostream>
 using namespace std;
 
 int main()
 {
   int cislo = 0;
 
   do {
     cout << "Ja som cislo: " << cislo << "\n";
     cislo++;
   } while (cislo < 1);
 
   return 0;
 }

Výsledok programu: 

Ja som cislo: 0

Rozbor programu: Ako vidíte, jedná iterácia sa vykonala. O tom je cyklus do while.

3. príklad: 

#include <iostream>
 using namespace std;
 
 int main()
 {
   int cislo = 0;
   bool isTrue = false;

  do {
     cislo++;
     cout << "Ja som cislo: " << cislo << "\n";
 
     if (cislo == 10)
       isTrue = true;    // zmena pravdivostnej hodnoty
   } while (!isTrue);
 
   return 0;
 }

Výsledok programu: 

Ja som cislo: 1
 Ja som cislo: 2
 Ja som cislo: 3
 Ja som cislo: 4
 Ja som cislo: 5
 Ja som cislo: 6
 Ja som cislo: 7
 Ja som cislo: 8
 Ja som cislo: 9
 Ja som cislo: 10

Rozbor programu: 

V podmienke while máme pravdivostnú premennú, ktorou určíme fungovanie cyklu. Ak je premenná isTrue false, tak cyklus prebehne ešte raz. Ak je true, tak cyklus skončí. Pre tých, ktorí nevedia skrátený zápis podmienky, tak !isTrue je to isté, ako isTrue == false.

4. príklad: Vyhláskujem ti tvoje meno

#include <iostream>
using namespace std;
int main()
{
  string name;
  cout << "Napis svoje meno: ";
  cin >> name;
  if (name.empty())
  {
    cout << "Sorry, ale nieco musis napisat. Skus to este raz!";
    return 0;
  }
  size_t i = 0;
  do {
    cout << name[i] << " ";
    i++;
  } while (i < name.size());
  return 0;
}

Výsledok programu:

Napis svoje meno: eduard
 e d u a r d

Rozbor programu: Najprv vstup od užívateľa. Následne prebieha cyklus do while až pokým premenná i je rovná veľkostí reťazca (ukončovací znak sa do veľkostí reťazca neberie do úvahy).

Na koniec použijeme príklad z minulého dielu. Zmeníme ho na do while cyklus. Myslíte, že bude výrazná zmena?

5. príklad: Tvoje meno v ASCII kóde

#include <iostream>
 using namespace std;
 
 int main()
 {
      string name;
 
      cout << "Napis svoje obcianske meno!\n";
      cin >> name;
 
      if (name.empty())
      {
          cout << "Ale daco musis napisat no, nestvi ma!";
          return 0;
      }
 
      size_t i = 0;
 
      do {
          cout << name[i] << ": " << static_cast<int>(name[i]) << "\n";
     // tu pretypujeme a vypíšeme na obrazovku
          i++;
      } while (i < name.size());
 
      return 0;
  }

Výsledok programu: 

Napis svoje obcianske meno!
 eduard
 e: 101
 d: 100
 u: 117
 a: 97
 r: 114
 d: 100

Rozbor programu: 

Všetko funguje ako má.

Diskuze (3) Nahoru