Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Blocuri repetitive in c#

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.

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*