1. Bucle în viața noastră
De foarte multe ori viețile noastre ne cer să facem aceleași acțiuni de multe ori. De exemplu, să presupunem că trebuie să scanez un document format din multe pagini. Repetăm aceeași procedură iar și iar:
- Pune prima pagină pe scaner
- Apăsați butonul de scanare
- Puneți următoarea pagină pe scaner
Acest lucru este dificil de făcut manual. Ar fi bine dacă acest proces ar putea fi cumva automatizat.
Sau luați în considerare un alt exemplu: să presupunem că vreau să marchez toate e-mailurile necitite din căsuța mea de e-mail ca spam. Cândva, trebuia să selectez fiecare e-mail pe rând și să-l marchez ca spam.
Dar programatorii sunt leneși, așa că au automatizat acest proces cu mult timp în urmă: acum pur și simplu selectați orice listă de litere și faceți clic pe „marcați ca spam”, iar apoi clientul dvs. de e-mail parcurge lista și mută fiecare e-mail în dosarul de spam.
Ce putem spune aici? Este foarte convenabil când un computer sau un program poate executa sute sau mii de operații monotone cu un singur clic. Și acum vei învăța cum să faci și asta.
2. while
buclă
Declarația if-else a extins semnificativ capacitățile noastre de programare, făcând posibilă scrierea de programe care efectuează diferite acțiuni în diferite situații. Dar mai există un lucru care va face programele noastre cu un ordin de mărime mai puternice - bucle .
Java are 4 tipuri de bucle: while
, for
, for-each
și do-while
. Vom cerceta acum chiar primul dintre acestea.
O while
buclă este foarte simplă. Este format din doar două părți: o condiție și un corp buclă . Corpul buclei este executat din nou și din nou atâta timp cât condiția este true
. În general, o while
buclă arată astfel:
while (condition)
statement;
while (condition)
{
block of statements
}
E foarte simplu. Instrucțiunea sau blocul de instrucțiuni este executată din nou și din nou atâta timp cât condiția buclei este egală cu .true
Iată cum funcționează: mai întâi, se verifică starea . Dacă este adevărat, atunci corpul buclei este executat ( instrucțiunea sau blocul de instrucțiuni ). Apoi condiția este verificată din nou și corpul buclei este executat din nou. Și așa mai departe până când condiția devine falsă.
Dacă condiția este întotdeauna adevărată , atunci programul nu se va opri niciodată. Va fi blocat permanent în buclă.
Dacă condiția este falsă chiar de prima dată când este verificată , atunci corpul buclei nu va fi executat nici măcar o dată.
3. Exemple de bucle
Iată câteva exemple practice de bucle în acțiune.
Cod | Explicaţie |
---|---|
|
Pe ecran vor fi afișate 5 linii:
|
Cod | Explicaţie |
---|---|
|
Pe ecran vor fi afișate 10 linii:
|
Cod | Explicaţie |
---|---|
|
Programul citește numerele de la tastatură atâta timp cât sunt introduse numere. |
Cod | Explicaţie |
---|---|
|
Programul va imprima la nesfârșit litera C pe ecran. |
Cod | Explicaţie |
---|---|
|
Programul va citi linii de la tastatură
până când |
În exemplul anterior, equals()
metoda este folosită pentru a compara șiruri. Dacă șirurile sunt egale, funcția va returna true
. Dacă șirurile nu sunt egale, atunci va reveni false
.
4. Buclă într-o buclă
Pe măsură ce ați aflat despre instrucțiunile condiționate, ați văzut că le puteți utiliza pentru a implementa o logică complexă prin combinarea mai multor instrucțiuni condiționate. Cu alte cuvinte, prin utilizarea unei if
declarații în interiorul unei if
declarații.
Puteți face același lucru cu bucle. Pentru a scrie o buclă într-o buclă, trebuie să scrieți a doua buclă în corpul primei bucle. Va arata cam asa:
while (condition for outer loop)
{
while (condition for inner loop)
{
block of statements
}
}
Să ne uităm la trei sarcini.
Sarcina 1 . Să presupunem că vrem să scriem un program care afișează cuvântul Mom
pe ecran de 4 ori. O buclă este exact ceea ce avem nevoie. Și codul nostru va arăta cam așa:
Cod | Explicaţie |
---|---|
|
Pe ecran vor fi afișate 4 linii:
|
Sarcina 2 . Vrem să scriem un program care să afișeze 5 litere A
s pe o singură linie. Pentru a face acest lucru, avem nevoie din nou de o buclă. Iată cum va arăta codul:
Cod | Explicaţie |
---|---|
|
În loc de println() , vom folosi print() . În caz contrar, fiecare literă A ar ajunge pe o linie separată. Ieșirea ecranului va fi:
|
Sarcina 3 . Vrem să afișăm un dreptunghi format din litera A
s. Dreptunghiul trebuie să fie format din 4 rânduri pe 5 coloane. Pentru a realiza acest lucru, acum avem nevoie de o buclă imbricată. Vom lua pur și simplu primul nostru exemplu (cel în care scoatem 4 linii) și vom înlocui codul pentru ieșirea unei linii cu codul din al doilea exemplu.
Cod | Explicaţie |
---|---|
|
Bucla exterioară este violet. Utilizează n variabila pentru a număra numărul de iterații ale buclei. Bucla interioară este verde. Folosește m variabila pentru a număra numărul de iterații ale buclei. Trebuie să mutăm în mod explicit cursorul pe linia următoare după ce bucla interioară este completă. În caz contrar, toate literele pe care programul le imprimă vor ajunge pe o singură linie. Ieșirea ecranului va fi:
|
Buclele exterioare și interioare trebuie să utilizeze variabile diferite pentru a număra numărul de iterații ale buclei. De asemenea, a trebuit să adăugăm System.out.println()
comanda după bucla interioară, deoarece acea buclă afișează litera A
s pe aceeași linie. Odată ce literele de pe o linie sunt afișate, cineva trebuie să mute cursorul pe o nouă linie.
5. Compararea buclelor Java vs Pascal
Mulți dintre voi l-ați studiat pe Pascal în liceu. Pentru a vă facilita înțelegerea materialului de aici, aruncați o privire la această comparație a while
buclelor scrise în Pascal și Java. Dacă nu îl cunoașteți pe Pascal, atunci treceți peste această parte.
Pascal | Java |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION