Tutorial .Net CE  |  Tutorial c# (.net)
Se cauta grafician

Blocuri repetitive in c#

July 26th, 2010 by zeltera

In limbajul c# exista mai multe posibilitati de a executa in mod repetat anumite blocuri de cod (ciclu). Aceste posibilitati sunt:

  • for
  • while
  • do…while
  • foreach

Aceste instructiuni sunt specifice multor limbaje si intelegerea folosiri lor ar trebui sa fie usoara pentru oriceine le-a mai folosit cu alte limbaje.

Le voi analiza pe rand, exemplificand utilizarea lor.

Cel mai simplu ciclu este ciclul for. Sintaxa generala este:

        for (int i = 0; i <= 5; i++)
        {
            //executa ceva de 5 ori
        }

O alta modalitate de scriere a unui bloc for este urmatoarea:

        for (; ; )
        {
            // ...
        }

care este un ciclu infinit. Acest bloc de cod ar trebui intrerupt (printr-o intructiune break, ca in exemplul urmator:

        int i = 0;
        for (; ; )
        {
            // ...
            if(i++ == 5) break;  //intrerupe ciclul
        }

O alta modalitate de a scrie un bloc ce se repeta la infinit este cu ajutorul keyword-ului while:

        int i = 0;
        while(true)
        {
            // ...
            if(i++ == 5) break;  //intrerupe ciclul
        }

Acest bloc de cod este echivalent (functional) cu cel anterior (folosinf for).

Instructiunile do…while sunt o alta metoda de a executa inmod repetat anumite linii de cod:

        int x = 0;
        do
        {
            Console.WriteLine(x);
            x++;
        } while (x < 5);

Diferenta dintre un bloc while si un bloc do…while este ca instructiunile din do…while se executa cel putin o data – conditia de iesire din loop se verifica dupa cel putin o executie. Codul dintr-un ciclu while poate sa nu fie executat niciodata.

De exemplu:

        int x = int.Parse(Console.ReadLine());
        while (x % 5 != 0)
        {
            Console.WriteLine(x++);
        }

Daca userul introduce un numar multiplu de 5, codul blocului while nu se executa nici macar o data.

Am lasat la final foreach, deoarece este o metoda de a executa in mod repetitiv anumite operatii, insa putin diferit de modurile cum lucreaza blocurile descrise anteorior. foreach executa blocul de comenzi asociat o singura data pentru fiecare element dintr-un array sau colectie de obiecte – conditia ca foreach sa poata fi aplicat colectiei este ca acea colectie sa implementeze interfata IEnumerable (sau IEnumerable<T>).

Exemplu folosind un array:

        int[] numbers = new int { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        foreach (int n in numbers)
        {
            Console.WriteLine("{1} -> {2}", n, 2 * n);
        }

Acest exemplu va afisa perechi de tipul n -> 2n pentru fiecare numar din array-ul de int folosit.




Un raspuns pentru “Blocuri repetitive in c#”

  1. Un meniu intr-o aplicatie consola | by zeltera a spus:

    [...] sa demonstreze acest exemplu? Poate fi considerat un exemplu de folosire pentru blocul repetitiv do…while prezentat anterior. Url-ul acestui articol este: http://blog.zeltera.eu/?p=1252Daca acest articol [...]

Leave a Reply

Intrebare antispan:
Care este rezultatul operatiei
+ =