Ciklične programske strukture -  petlje

            Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog postupka više puta. Ovo se realizuje upotrebom upravljačkih struktura koje se nazivaju petlje.

            Postoji više vrsta petlji i one se mogu klasifikovati po više kriterijuma. Ako je kriterijum broj izvršavanja tela petlje onda postoje dve vrste petlji:

-          Petlje sa konstantnim brojem prolaza (brojačka petlja)

-          Petlje sa promenljivim brojem prolaza.

U programskom jeziku C# postoje dve vrste programskih petlji:

·         Petlje sa konstantnim brojem prolaza (unapred se zna koliko puta će se izvršiti telo petlje)

1.      for petlja

2.      foreach petlja

·         Petlje sa promenljivim brojem prolaza (broj izvršenja tela petlje se određuje u fazi izvršenja programa i zavisi od vrednosti za petlju relevantnih elemenata kao što su promenljive i sl.)

1.      while petlja

2.      do-while petlja

for - petlja

 

            for petlja je petlja sa konstantnim brojem prolaza i naziva se još i brojačka petlja. Opšti oblik for petlje u programskom jeziku C# je:

for(izraz1; izraz2; izraz3)

{

telo petlje

}

 

izraz1 – vrši inicijalizaciju promenljivih koje se koriste u ptelji (što može biti postavljanje početne vrednosti brojača petlje)

izraz2 – predstavlja uslov na osnovu koga se odlučuje da li će se telo petlje još izvršavati ili se izvršavanje ptelje prekida (petlja se izvršava dok je vrednost ovog izraza tačna – uslov za izvršenje ptelje može da bude dok brojač petlje ne postigne svoju gornju granicu)

izraz3 – definiše promenu vrednosti promenljivih koje se koriste u petlji. Navedena promena se vrši nakon svakog izvršenja tela petlje (tu se može definisati kako se menja vrednost brojača petlje nakon svakog izvršenja tela ptelje).

telo petlje – telo petlje može biti jedna naredba, blok naredbi ili kontrolna struktura.

            Primer1: Napisati program koji prikazuje prvih 10 neparnih brojeva.

        static void Main(string[] args)

        {

            int i, x;

            x = 1;      // prvi neparni broj je 1

            for (i = 1; i <= 10; i++)  /* broj ponavljanja tela petlje je 10 */

            {

                Console.Write(x + " ");  // prikaži x

                x = x + 2;       /* novi neparni broj je veći od predhodnog za +2 */

            }

            Console.ReadKey();

        }

 

            Izvršenjem ovog programa na ekranu se dobija:

            

            Primer2: Napisati program koji sabira prvih 10 parnih prirodnih brojeva.

static void Main(string[] args)

        {

            int x, s, i;

            x = 2;   // prvi parni broj je 2

            s = 0;   // suma je u početku 0

            for (i = 1; i <= 10; i++)  /*broj izvršenja tela petlje je 10*/

            {

                s = s + x;     /*uvećava sumu za svaki parni broj*/

                x = x + 2;     /*novi parni broj je veći od predhodnog za 2*/

            }

            Console.WriteLine("Suma prvih 10 parnih brojeva je: " + s);

            Console.ReadKey();

        }

Izvršenjem ovog programa na ekranu će pisati:

foreach - petlja

 

            Ova petlja se koristi u radu sa skupom elementata. Skup elemenata je više elemenata koju su uređeni, npr. niz.

            Opšti oblik foreach petlje je:

foreach(tip promenljiva in izraz)

{

telo petlje

}

 

promenljiva je promenljiva koja se koristi u petlji za pristup svim elementima specificiranim u izrazu izraz.

Primer: Neka je zadat celobrojni niz imena nekiNiz definisan kao int[]nekiNiz={1, 5, 3, 7, 2}; Sledećom foreach petljom se prolazi kroz sve elemente niza i oni se prikazuju na izlazu:

   static void Main(string[] args)

        {

            int[] nekiNiz = { 1, 5, 3, 7, 2 };

            foreach (int indeks in nekiNiz)

            {

              Console.WriteLine("element niza je: " + indeks );

            }

            Console.ReadKey();

  }

Rezultat rada ove petlje je prikaz elemenata niza nekiNiz: