Î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?
- C # pentru bucla are trei declarații:
initialization
,condition
șiiterator
. initialization
Declarația este executată la început și doar o singură dată. Aici, variabila este de obicei declarată și inițiată.- Apoi,
condition
este evaluat. Estecondition
o expresie booleană, adică returnează fietrue
saufalse
. - Dacă
condition
este evaluat latrue
:- Instrucțiunile din bucla for sunt executate.
- Apoi,
iterator
se execută instrucțiunea care schimbă de obicei valoarea variabilei inițializate. - Din nou
condition
este evaluat. - Procesul continuă până când
condition
este evaluat lafalse
.
- Dacă
condition
este evaluat lafalse
, 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 esteint i=1
condition
afirmație estei<=5
iterator
afirmație estei++
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ătrue
la 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 bucleiRepetare | 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)