Циклус for је најједноставнија наредба циклуса. У овом цикулсу постоји променљива која у свакој итерацији, тј. приликом сваког проласка кроз петљу, узима по једну вредност из неког унапред задатог скупа. Ова променљива се назива "бројач". Тако да се тело петље извршава по једном за сваку вредност бројача из датог скупа вредности.
*** Пример из свакодневног живота којим можемо илустровати for петљу: Наставник крене редом из дневника да прозива ученике и да их пита ко је урадио домаћи. (Овде је задати скуп управо списак редних бројева ученика у дневнику)
Синтакса наредбе for је следећа:
for (izraz1; izraz2; izraz3)
{
naredba (ili grupa naredbi);
}
Све наредбе које се налазе између знакова { и } називају се тело петље.
Сваки од израза izraz1, izraz2 и izraz3 може бити изостављен, али оба симбола ; и у том случају морају бити присутна. Наредба у телу петље може бити проста или сложена. Izraz1 се израчунава само једном и његова улога је најчешће иницијализација бројача. Izraz2 је логички израз који се представља као услов који се проверава пре сваког извршења наредбе. Након сваке итерације (понављања), односно након сваке наредбе у телу петље израчунава се izraz3. Уколико је изостављен izraz2, сматра се да је његова истинитосна вредност ТАЧНО.
For петља се ивршава на следећи начин:
На пример, следећа for петља се извршава бесконачно:
for ( ; ; )
. . .
Циклус for можемо представити и блок дијаграмом.(Слика 8.1)
Слика 8.1. Приказ for петље |
*** Пример из свакодневног живота:
Сада ћемо видети како ради for петља на примеру са наставником и домаћим задатком.
Прво наставник отвори дневник и зна да у одељењу има нпр. 30 ученика. Он креће од ученика који је под редним бројем 1 у дневнику. То што креће од ученика који је први у дневнику јесте иницијализација бројача бројем 1.
Затим постави себи један услов, а то је питање да ли je дошао до краја прозивника.
Ако је редни број ученика мањи или једнак од 30, тј. ако је услов испуњен наставник погледа да ли је ученик на часу и ако јесте пита ученика да ли је урадио домаћи и прибележи у својој свесци оно што ученик каже. Уколико ученик није ту наставник прелази на следећег ученика. Управо ово проверавање да ли је ученик присутан на часу, а потом питање да ли је урадио домаћи задатак и бележење учениковог одговора одговара телу петље. Односно, овде имамо групу наредби, а то је:
Пример 1. Написати програм који притиском на командно дугме ODREDI узима природан број n који је корисник унео, израчунава збир првих n природних бројева и исписује резултат на екрану.
Решење:
|
|||
Слика 8.2. Изглед форме у Примеру 1 |
int n = int.Parse(textBox1.Text);
int zbir = 0;
if (n > 0)
{
label2.Text = "Zbir prvih " + n + " prirodnih brojeva je ";
for (int i = 1; i <= n; i++)
//Na prethodnu vrednost promenljive zbir mi dodajemo tekucu vrednost naseg brojaca i.
//Ovaj postupak se ponavlje dokle god je ispunjen uslov, tj. dok vazi i<=n .
zbir = zbir + i;
label2.Text = label2.Text + zbir;
}
else
{
MessageBox.Show( "Unesite prirodan broj n!");
textBox1.Text = "";
}
Слика 8.3. Изглед форме у Примеру 1 ако је унос исправан | Слика 8.4. Изглед форме у Примеру 1 ако унос није исправан |