Циклус while

While циклус је сложена наредба која представља петљу са ПРЕДУСЛОВОМ. Код while петље имамо услов на почетку петље који проверавамо да ли је испуњен.

*** Пример из свакодневног живота којим можемо илустровати while петљу: Кафићима који се налазе у стамбеним зградама дозвољено је пуштање музике докле год није 1 сат после поноћи.

Синтакса наредбе while је следећа:


while (uslov)
{
    naredba (ili grupa naredbi);
}

Напомена: For петља еквивалентна је следећој while петљи

izraz1;
while (izraz2)
{
    naredba (ili grupa naredbi);
    izraz3;
}

Све наредбе које се налазе између знакова { и } називају се тело петље.

Наредба у телу петље може бити проста или сложена. While петља се ивршава на следећи начин:

  1. Пре првог проласка кроз саму петљу израчунава се izraz1. Затим се улази у петљу.
  2. Када уђемо у петљу прво се израчуна izraz2, односно испита се услов и ако је испуњен извршава се наредба. После тога израчунава се izraz3.
  3. Поново се рачуна izraz2 (проверава услов). Ако је услов поново испуњен, поново се извршава наредба и тако даље.
  4. Када услов више није испуњен, наредба се не извршава, а петља се завршава и прелази се на следећу наредбу која се налази ван тела петље.
Приметимо да се код while петље може догодити да се наредба у телу петље не изврши ни једном, а то се дешава онда када услов у старту није испуњен, тако да се тада петља завршава без извршења наредбе.

While петљу можемо представити и блок дијаграмом. (Слика 8.5)

Слика 8.5. Приказ while петље

*** Пример из свакодневног живота: Сада ћемо видети како ради while петља на примеру са музиком и кафићем.
Часовник откуцава, тј. имамо време и сваки пут када уђемо у петљу проверимо да ли је време које је тренутно на часовнику мање од једног сата после поноћи. Уколико је услов испуњен, музику смемо да наставимо да пуштамо. Онда опет после одређеног времена (нпр. после пола сата) проверимо да ли је услов испуњен и уколико јесте музика и даље остаје укључена. Међутим, уколико услов више није испуњен, односно уколико време прелази границу од једног сата после поноћи, тада се наша петља завршава и обуставља се пуштање музике у кафићу.

Пример 1. Написати програм који притиском на командно дугме ODREDI узима природан број n који је корисник унео, израчунава збир првих n природних бројева и исписује резултат на екрану.

Решење:

  1. label1 - у овој лабели ћемо написати Broj n:
  2. textBox1 - у ово поље ће наш корисник да уноси одговарајући податак, тј. унеће природан број n
  3. button1 - ово је наше контролно дугме и на њему ћемо написати ODREDI
  4. label2 - у овој лабели ћемо исписивати резултат нашег задатка
Слика 8.6. Изглед форме у Примеру 1

int n =  int.Parse(textBox1.Text);
int zbir = 0;

if (n < 0)
{
    MessageBox.Show("Unesite prirodan broj n!");
    textBox1.Text = "";
}

while (n > 0)
{
    label2.Text = "Zbir prvih " + n + " prirodnih brojeva je ";
    //Na prthodnu vrednost promenljive zbir
    //Dodajemo tekucu vrednost broja n koji smo uneli.
    zbir = zbir + n;
    //Umanjimo broj n za 1.
    n--;
}

label2.Text = label2.Text + zbir;
Слика 8.7. Изглед форме у Примеру 1 ако је унос исправан Слика 8.8. Изглед форме у Примеру 1 ако унос није исправан