While

A while ciklus

Más néven: „amíg ciklus”, elöltesztelő ismétlő szerkezet

„ciklus” = ismétlő szerkezet / utasítás

Szerkezete:

1
2
        while (feltétel)
            utasítás

vagy:

1
2
3
4
5
        while (feltétel) {
            utasítás1
            utasítás2
            ...
        }

Működése:

Le lesz ellenőrizve a feltétel, ha igaz, akkor végrehajtódnak a ciklusban levő utasítások. Majd megint ellenőrződik a feltétel és ha igaz megint végrehajtódnak. És így tovább… Amint a feltétel hamis, megáll (nem hajtódnak többet végre).

Példák

Végtelen ciklus (sosem áll meg):

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

int main()
{
    while (1 < 2) {
        cout << "hello, world!" << endl;
    }

    return 0;
}

Kiírjuk a számokat 1-től 100-ig:

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

int main()
{

    int szam = 1;

    while (szam <= 100) {
        cout << szam << endl;
        szam = szam + 1;
    }

    return 0;
}

Beolvasunk egy pozitív egész n-t, írjuk ki a term. számokat 1-től n-ig!

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

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

    int i = 1;
    while (i <= n) {
        cout << i << " ";
        i = i + 1;
    }
   
    cout << endl;
    return 0;
}

Beolvasunk egy pozitív egész n-t, írjuk ki a term. számokat n-től 1-ig!

 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;

    while (n >= 1) {
        cout << n << " ";
        n = n-1;
    }
    
    return 0;
}

Feladatok

1. Írjuk ki 100-szor azt a szöveget, hogy “az info hazi is kell, nem csak a fizika”!

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

int main()
{
    int n = 100;
    //cin >> n;

    int i = 1;
    while (i <= n) {
        cout << "az info hazi is kell, nem csak a fizika" << endl;
        i = i + 1;
    }

    return 0;
}

2. Beolvasunk egy n számot, írjuk ki a term. számokat n-től 1-ig (tehát visszafelé)!

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

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

    int i = n;
    while (i >= 1) {
        cout << i << " ";
        i = i - 1;
    }

    cout << endl;
    return 0;
}

3. Beolvasunk egy n számot, írjuk ki a páros számokat 1-től n-ig!

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

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

    int i = 1;
    while (i <= n) {
        if (i % 2 == 0) {
            cout << i << " ";
        }
        i = i + 1;
    }

    cout << endl;
    return 0;
}

4. Beolvasunk egy n számot, írjuk ki az 1 és n közötti páros természetes számokat csökkenő sorrendben!

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

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

    int i = n;
    while (i >= 1) {
        if (i % 2 == 0) {
            cout << i << " ";
        }
        i = i - 1;
    }

    cout << endl;
    return 0;
}

Vagy:

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

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

    int i = n;
    if (n % 2 == 1) {
        i = n-1;
    }

    while (i >= 1) {
        cout << i << " ";
        i = i - 2;
    }

    cout << endl;
    return 0;
}