C # pentru buclă (cu exemple)

În acest articol, vom afla despre bucla for în C # și despre diferite moduri de a le folosi într-un program.

În programare, de multe ori se dorește executarea anumitor blocuri de instrucțiuni pentru un număr specificat de ori. O posibilă soluție va fi să tastați acele declarații pentru numărul necesar de ori. Cu toate acestea, este posibil ca numărul de repetări să nu fie cunoscut în avans (în timpul compilării) sau poate suficient de mare (să zicem 10000).

Cea mai bună soluție la o astfel de problemă este bucla. Buclele sunt utilizate în programare pentru a executa în mod repetat un anumit bloc de instrucțiuni până când este îndeplinită o anumită condiție.

În acest articol, vom analiza bucla în C #.

C # pentru buclă

Cuvântul cheie for este folosit pentru a crea bucla pentru C #. Sintaxa pentru bucla for este:

 for (inițializare; condiție; iterator) (// corpul buclei for) 

Cum funcționează bucla?

  1. C # pentru bucla are trei declarații: initialization, conditionși iterator.
  2. initializationDeclarația este executată la început și doar o singură dată. Aici, variabila este de obicei declarată și inițiată.
  3. Apoi, conditioneste evaluat. Este conditiono expresie booleană, adică returnează fie truesau false.
  4. Dacă conditioneste evaluat la true:
    1. Instrucțiunile din bucla for sunt executate.
    2. Apoi, iteratorse execută instrucțiunea care schimbă de obicei valoarea variabilei inițializate.
    3. Din nou conditioneste evaluat.
    4. Procesul continuă până când conditioneste evaluat la false.
  5. Dacă conditioneste evaluat la false, bucla for se termină.

pentru diagrama de flux Loop

Exemplul 1: C # pentru buclă

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1; i<=5; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", i); ) ) ) ) 

Când rulăm programul, ieșirea va fi:

 C # Pentru buclă: Iterare 1 C # Pentru buclă: Iterare 2 C # Pentru buclă: Iterare 3 C # Pentru buclă: Iterare 4 C # Pentru buclă: Iterare 5

În acest program,

  • initialization afirmație este int i=1
  • condition afirmație este i<=5
  • iterator afirmație este i++

Când programul rulează,

  • În primul rând, variabila i este declarată și inițiată la 1.
  • Apoi, starea ( i<=5) este evaluată.
  • Deoarece condiția revine true, programul execută apoi corpul buclei for. Tipărește linia dată cu Iterarea 1 (Iterarea înseamnă pur și simplu repetare).
  • Acum, iteratorul ( i++) este evaluat. Aceasta crește valoarea lui i la 2.
  • Condiția ( i<=5) este evaluată din nou și la sfârșit, valoarea lui i este mărită cu 1. Condiția se va evalua până truela primele 5 ori.
  • Când valoarea lui i va fi 6 și condiția va fi false, de aceea bucla se va termina.

Exemplul 2: pentru bucla pentru a calcula suma primelor n numere naturale

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int n = 5,sum = 0; for (int i=1; i<=n; i++) ( // sum = sum + i; sum += i; ) Console.WriteLine("Sum of first (0) natural numbers = (1)", n, sum); ) ) ) 

Când rulăm programul, ieșirea va fi:

 Suma primelor 5 numere naturale = 15

Aici, valoarea sumei și n sunt inițializate la 0 și respectiv 5. Variabila de iterație i este inițializată la 1 și incrementată la fiecare iterație.

În bucla for, valoarea sumei este incrementată cu i ie sum = sum + i. Bucla for continuă până când i este mai mic sau egal cu n (intrarea utilizatorului).

Să vedem ce se întâmplă în programul dat pe fiecare iterație.

Inițial, i = 1, sumă = 0 și n = 3

Pentru pașii de execuție a buclei
Repetare Valoarea i i <= 5 Valoarea sumei
1 1 Adevărat 0 + 1 = 1
2 2 Adevărat 1 + 2 = 3
3 3 Adevărat 3 + 3 = 6
4 4 Adevărat 6 + 4 = 10
5 5 Adevărat 10 + 5 = 15
6 6 fals Bucla se termină

Deci, valoarea finală a sumei va fi 15 când n = 5.

Expresii multiple în interiorul unei bucle for

Putem folosi, de asemenea, mai multe expresii în interiorul unei bucle for. Înseamnă că putem avea mai multe instrucțiuni de inițializare și / sau iterator într-o buclă for. Să vedem exemplul de mai jos.

Exemplul 3: pentru buclă cu inițializare multiplă și expresii iteratoare

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=0, j=0; i+j<=5; i++, j++) ( Console.WriteLine("i = (0) and j = (1)", i,j); ) ) ) ) 

Când rulăm programul, ieșirea va fi:

 i = 0 și j = 0 i = 1 și j = 1 i = 2 și j = 2

În acest program, am declarat și inițializat două variabile: i și j în declarația de inițializare.

De asemenea, avem două expresii în partea iteratorului. Asta înseamnă că atât i cât și j sunt incrementate cu 1 la fiecare iterație.

Pentru buclă fără inițializare și instrucțiuni iterator

The initialization, condition and the iterator statement are optional in a for loop. It means we can run a for loop without these statements as well.

In such cases, for loop acts as a while loop. Let's see the example below.

Example 4: for loop without initialization and iterator statement

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int i = 1; for ( ; i<=5; ) ( Console.WriteLine("C# For Loop: Iteration (0)", i); i++; ) ) ) ) 

When we run the program, the output will be:

 C# For Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 5

In this example, we haven't used the initialization and iterator statement.

The variable i is initialized above the for loop and its value is incremented inside the body of loop. This program is same as the one in Example 1.

În mod similar, condiția este, de asemenea, o afirmație opțională. Totuși, dacă nu folosim expresia de test, bucla for nu va testa nicio condiție și va rula pentru totdeauna (buclă infinită).

Infinit pentru buclă

Dacă condiția într-o buclă for este întotdeauna adevărată, for loop va rula pentru totdeauna. Aceasta se numește infinit pentru buclă.

Exemplul 5: Infinit pentru buclă

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1 ; i>0; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", i); ) ) ) ) 

Aici, i este inițializat la 1 și condiția este i>0. La fiecare iterație, incrementăm valoarea lui i cu 1, deci condiția nu va fi niciodată false. Acest lucru va face ca bucla să se execute la infinit.

De asemenea, putem crea o buclă infinită prin înlocuirea condiției cu un gol. De exemplu,

 for (;;) (// corpul buclei for) 

sau

 for (inițializare;; iterator) (// corpul buclei for) 

Articole interesante...