CodeGym /Blog Java /Aleatoriu /Java For Loop
John Squirrels
Nivel
San Francisco

Java For Loop

Publicat în grup
Odată, Mark Zuckerberg a remarcat că computerele sunt foarte bune în repetarea comenzilor. Nu este simplu pentru o ființă umană, ne săturam de repetarea aceluiași lucru de multe ori la rând, dar un computer o poate face de milioane și miliarde de ori și nu se plictisește niciodată. Dacă încerci să trimiți salutări tuturor utilizatorilor Facebook, nu există niciun om care să aibă suficiente zile pentru a o face. Cu toate acestea, puteți face un computer pentru a rezolva această sarcină scriind câteva rânduri de cod. Așa funcționează buclele. Ne lasă să nu repetăm ​​aceleași acțiuni de rutină. Cea mai populară buclă din Java este așa-numita buclă definită sau bucla for.

Cum se scrie o buclă for în Java? Pentru buclă în general

For loop execută unele instrucțiuni de un anumit număr de ori. De exemplu, să scrii de cincizeci de ori „Nu trebuie să fiu așa, ho-ho, ho” sau să trimiți invitații tuturor prietenilor tăi sunt sarcini tipice pentru acest tip de buclă. Sintaxa celei mai comune versiuni a buclei for:

for ([counter initialization]; [checking conditions]; [changing of the counter])
{
    //  statements
}
Expresia de inițializare este executată o dată, apoi este evaluată condiția, care ar trebui să fie o expresie booleană.
  • Când bucla începe, inițializările se execută.
  • Când condițiile devin false, bucla noastră își oprește activitatea.
Contorul se schimbă, de obicei, incrementarea (sau decrementarea) are loc după fiecare iterație prin buclă. Puteți sări peste oricare dintre cele trei expresii de buclă (inițializare, verificarea condiției, schimbarea contorului). Condiția buclei este verificată înainte de următorul pas al buclei. Dacă condiția este falsă, programul iese din buclă și continuă cu instrucțiunea care urmează construcției for. Aici avem o diagramă bloc a buclei for. Bucla For în Java - 2

Cum se utilizează bucla for în Java. Exemplu simplu.

Iată un exemplu specific de buclă Java for. Să scriem de zece ori „Bună ziua!” String de fiecare dată ar fi din noua linie cu un număr din această linie. Ar trebui să obținem următorul rezultat:
  1. Buna ziua!
  2. Buna ziua!
  3. Buna ziua!
  4. Buna ziua!
  5. Buna ziua!
  6. Buna ziua!
  7. Buna ziua!
  8. Buna ziua!
  9. Buna ziua!
  10. Buna ziua!
Iată programul nostru Java care rezolvă această problemă:

public class ForExample {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           System.out.println(i + 1 + ". Hello!");
       }
   }
}

Cum functioneaza?

Pasul 1. Numărătorul i = 0. Loop verifică starea noastră, i << 10, prin urmare, instrucțiunile buclei sunt executate. Imprimă expresia „1. Bună ziua!”. 1 este un șir i + 1 (pentru că am numărat de la zero, dar prima linie este încă prima). Contorul i este incrementat. Acum, i = 1. Pasul 2. Contor i = 1. i < 10, deci avem o expresie "2. Bună!" și i + 1 = 2. … Pasul 10. Numărătoarea i = 9, avem „10. Bună ziua!” iar i este incrementat la 10. Pasul 11. Contorul i = 10. i < 10 ? Nu, este fals. Prin urmare, bucla este încheiată. bucla pentru în Java - 3

bucla while și bucla for: diferențe și asemănări

În Java, bucla nedefinită sau bucla while este executată continuu dacă condiția booleană se adeverește. Sintaxa buclei while:

while (boolean condition)
       {
            loop statements...
       }
Destul de des puteți alege ce buclă doriți să utilizați. Uneori sunt foarte aproape și le poți folosi pe amândouă. De exemplu, iată codul pentru aceeași sarcină (scriind de zece ori „Bună!” cu un număr de rând) scris cu bucla while:

public class ForAndForEach {
   public static void main(String[] args) {
       int j = 0;  //  we use the counter this way 
       while (j < 10) {
           System.out.println(j + 1 + ". Hello!");
           j++;
       }
   }
}
Cu toate acestea, programatorilor profesioniști nu prea le place bucla while și, ori de câte ori este posibil, încearcă să folosească bucla for.
PENTRU IN TIMP CE

Folosim bucla for dacă știam deja numărul de iterații.

Folosim bucla while dacă nu știm exact numărul de iterații.

Inițializarea, verificarea condițiilor și schimbarea contorului sunt deja cusute în sintaxa unei bucle

Inițializarea și verificarea stării în interiorul buclei. În plus, puteți utiliza counter în declarații.

Buclă infinită pentru:


for(;;){
	System.out.println("working...");
}

Buclă infinită în timp ce:


while(true){
	System.out.println("working...");
}

Cum să ieși dintr-o buclă for în java

De obicei, o buclă for rulează ca un flux și modalitatea naturală de a ieși dintr-o buclă este atunci când o condiție ia o valoare falsă. Cu toate acestea, există două instrucțiuni de control care vă permit să părăsiți bucla înainte de a obține valoarea falsă a unei condiții - break and continue.
  • break permite ieșirea din corpul buclei curente ca și cum condiția buclei a fost evaluată la fals.
  • continue face ca bucla să sară la pasul următor (iterarea contorului) fără a executa instrucțiunile.
Să rezolvăm următoarea problemă folosind break și continuă. Avem o serie de nume și salutăm tuturor celor din această matrice, cu excepția străinilor. Deci, dacă întâlnim un șir „Străin” în timpul buclei noastre, ieșim din el (plecați și opriți-vă pentru a saluta pe oricine altcineva).

public class ForBreakExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
//  how to break out of a for loop, java: check if we have any "Stranger" in  //  our array            
if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               break;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Rezultatul executării programului nostru este:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Vedea? Am fugit din buclă înainte să-i salutăm pe Lucas și Will. Acum haideți să folosim continuare, doar pentru a ignora un „Străin”, dar rămâneți în buclă pentru a saluta alți prieteni.

public class ForContinueExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
           if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Rezultatul este:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Excelent! I-am salutat pe toți prietenii, dar nu am vorbit cu un străin.

Versiune îmbunătățită a buclei for sau for-each

For-each este un fel de buclă for care este folosită atunci când trebuie să procesați toate elementele unei matrice sau colecții. De fapt, expresia pentru fiecare nu este folosită în acest ciclu. Sintaxa este următoarea:

for (type itVar: array)
{
    Block of operators;
}
Unde tip este tipul variabilei iterative (la fel cu tipul de date al matricei), ItVar este numele acesteia, array este matricea sau poate exista o altă structură de date, de exemplu, ArrayList. După cum puteți vedea, nu există contor, variabila de iterație iterează peste elementele unei matrice sau colecții, și nu asupra valorilor indexului. Când se execută o astfel de buclă, variabilei de iterație i se atribuie secvenţial valoarea fiecărui element al matricei sau colecției, după care este executat blocul specificat de instrucțiuni (sau operatorul). Atenție: bucla for-each poate fi aplicată matricelor și oricăror clase care implementează interfața java.lang.Iterable. Să rezolvăm aceeași problemă cu salutări prieteni, ignorând străinii („Străin”), dar de data aceasta folosiți for-each bucla.

public class ForEachExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
	//  for each loop, Java code
       for (String name : names) {
           if (name.equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("hello, " + name);
       }
   }
}
Pentru a consolida ceea ce ați învățat, vă sugerăm să urmăriți o lecție video de la Cursul nostru Java
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION