Do-while

A do-while ciklus

Más néven: hátultesztelő ismétlő szerkezet

Szerkezete:

    do {
        utasítás1
        utasítás2
        ...
    } while (feltétel);

Működése:

Végre lesznek hajtva az utasítások, majd ellenőrizzük a feltételt: ha igaz, akkor ismét végre lesznek hajtva és ismét ellenőrizzük stb. Amint a feltétel hamis lesz, leáll.

Példa

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    do {
        cout << n << endl;
        n = n + 1;
    } while (n < 10);

    return 0;
}

Nyomonkövetés

Ha a bemenet n = 8.

    n | 8 9 10
    -------------------------
    
    Kimenet: 8 
             9

Ha a bemenet n = 12.

    n | 12 13
    -------------------------
    
    Kimenet: 12 

Feladat

Adott egy n term. szám. Írjuk ki a számjegyeit külön sorokba.

Ötlet:

    135 % 10 == 5
    135 / 10 == 13

    13 % 10 == 3
    13 / 10 == 1

    1 % 10 == 1
    1 / 10 == 0

Itt a megoldást érdemes do-while ciklussal leírni, mert n = 0 esetén is szeretnénk kiírni egyszer az utolsó számjegyet:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    do {
        cout << n % 10 << endl;
        n = n / 10;
    } while (n > 0);

    return 0;
}

Ha while-lal oldjuk meg, akkor az n = 0 esetet külön kell kezelni:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    if (n == 0) {
        cout << 0 << endl;
    }
    else {
        while (n > 0) {
            cout << n % 10 << endl;
            n = n / 10;
        }
    }

    return 0;
}