1. Mga loop sa ating buhay

Kadalasan ang ating buhay ay nangangailangan sa atin na gawin ang parehong mga aksyon nang maraming beses. Halimbawa, ipagpalagay na kailangan kong mag-scan ng isang dokumento na binubuo ng maraming mga pahina. Na paulit-ulit naming ulitin ang parehong pamamaraan:

  • Ilagay ang unang pahina sa scanner
  • Pindutin ang scan button
  • Ilagay ang susunod na pahina sa scanner

Ito ay mahirap gawin nang manu-mano. Magiging maganda kung ang prosesong ito ay maaaring maging awtomatiko.

O isaalang-alang ang isa pang halimbawa: sabihin nating gusto kong markahan ang lahat ng hindi pa nababasang email sa aking inbox bilang spam. Noong unang panahon, kailangan kong piliin ang bawat email nang paisa-isa at markahan ito bilang spam.

Ngunit tamad ang mga programmer, kaya na-automate na nila ang prosesong ito matagal na ang nakalipas: ngayon ay pipili ka lang ng anumang listahan ng mga titik at i-click ang "markahan bilang spam", at pagkatapos ay tatakbo ang iyong email client sa listahan at inililipat ang bawat email sa folder ng spam.

Ano ang masasabi natin dito? Ito ay sobrang maginhawa kapag ang isang computer o program ay maaaring magsagawa ng daan-daan o libu-libong mga monotonous na operasyon sa isang click. At ngayon matututunan mo rin kung paano gawin ito.


2. whileloop

Ang if-else na pahayag ay makabuluhang pinalawak ang aming mga kakayahan sa programming, na ginagawang posible na magsulat ng mga program na gumaganap ng iba't ibang mga aksyon sa iba't ibang mga sitwasyon. Ngunit may isa pang bagay na gagawing mas malakas ang aming mga programa sa pagkakasunud-sunod ng magnitude — mga loop .

Ang Java ay may 4 na uri ng mga loop: while, for, for-eachat do-while. Susuriin natin ngayon ang pinakauna sa mga ito.

Ang isang whileloop ay napaka-simple. Binubuo lamang ito ng dalawang bahagi: isang kundisyon at isang katawan ng loop . Ang loop body ay paulit-ulit na isinasagawa hangga't ang kundisyon ay true. Sa pangkalahatan, whileganito ang hitsura ng isang loop:

while (condition)
   statement;
Notasyon para sa isang whileloop na may iisang pahayag
while (condition)
{
   block of statements
}
Notasyon para sa isang whileloop na may isang bloke ng mga pahayag

Ito ay napaka-simple. Ang pahayag o bloke ng mga pahayag ay paulit-ulit na isinasagawa hangga't ang kondisyon ng loop ay katumbas true.

Ganito ito gumagana: una, sinusuri ang kundisyon . Kung ito ay totoo, pagkatapos ay ang loop body ay pinaandar (ang pahayag o bloke ng mga pahayag ). Pagkatapos ay susuriin muli ang kundisyon at muling ipapatupad ang loop body . At iba pa hanggang sa maging mali ang kundisyon .

Kung palaging totoo ang kundisyon , hinding-hindi titigil sa pagtakbo ang program. Ito ay permanenteng maiipit sa loop.

Kung mali ang kundisyon sa unang pagkakataong ito ay nasuri , ang katawan ng loop ay hindi isasagawa kahit isang beses.


3. Mga halimbawa ng mga loop

Narito ang ilang praktikal na halimbawa ng mga loop sa pagkilos.

Code Paliwanag
int n = 5;
while (n > 0)
{
   System.out.println(n);
   n--;
}
5 linya ang ipapakita sa screen:
5
4
3
2
1
Code Paliwanag
int  n = 0;
while (n < 10)
{
   System.out.println(n);
   n++;
}
10 linya ang ipapakita sa screen:
0
1
...
8
9
Code Paliwanag
Scanner console = new Scanner(System.in);
while(console.hasNextInt())
{
   int x = console.nextInt();
} 
Ang programa ay nagbabasa ng mga numero mula sa keyboard hangga't ang mga numero ay ipinasok.
Code Paliwanag
while (true)
   System.out.println("C");
Ang programa ay walang katapusang i-print ang sulat Csa screen.
Code Paliwanag
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Ang programa ay magbabasa ng mga linya mula sa keyboard

hanggang exitsa nakapasok.

Sa nakaraang halimbawa, ang equals()pamamaraan ay ginagamit upang ihambing ang mga string. Kung pantay ang mga string, babalik ang function true. Kung hindi pantay ang mga string, babalik ito false.



4. Loop sa loob ng isang loop

Habang nalaman mo ang tungkol sa mga conditional na pahayag, nakita mo na magagamit mo ang mga ito upang ipatupad ang kumplikadong lohika sa pamamagitan ng pagsasama-sama ng maraming conditional na pahayag. Sa madaling salita, sa pamamagitan ng paggamit ng isang ifpahayag sa loob ng isang ifpahayag.

Maaari mong gawin ang parehong bagay sa mga loop. Upang magsulat ng isang loop sa loob ng isang loop, kailangan mong isulat ang pangalawang loop sa loob ng katawan ng unang loop. Magiging ganito ang hitsura nito:

while (condition for outer loop)
{
   while (condition for inner loop)
   {
     block of statements
   }
}
whileloop (na may isang bloke ng mga pahayag ) sa loob ng isa pang whileloop

Tingnan natin ang tatlong gawain.

Gawain 1 . Sabihin nating gusto naming magsulat ng isang programa na nagpapakita ng salita Momsa screen ng 4 na beses. Ang isang loop ay eksakto kung ano ang kailangan namin. At ang aming code ay magiging ganito ang hitsura:

Code Paliwanag
int  n = 0;
while (n < 4)
{
   System.out.println("Mom");
   n++;
}
4 na linya ang ipapakita sa screen:
Mom
Mom
Mom
Mom

Gawain 2 . Nais naming magsulat ng isang programa na nagpapakita ng 5 titik As sa isang linya. Upang gawin ito, kailangan namin ng isang loop muli. Ito ang magiging hitsura ng code:

Code Paliwanag
int n = 0;
while (n < 5)
{
   System.out.print("A");
   n++;
}
Sa halip na println(), gagamitin natin ang print(). Kung hindi, ang bawat titik A ay magtatapos sa isang hiwalay na linya.

Ang output ng screen ay magiging:
AAAAA

Gawain 3 . Nais naming magpakita ng isang parihaba na binubuo ng mga titik As. Ang parihaba ay dapat na binubuo ng 4 na hanay ng 5 hanay. Upang magawa ito, kailangan na namin ngayon ng isang nested loop. Kukunin lang namin ang aming unang halimbawa (ang isa kung saan naglalabas kami ng 4 na linya) at palitan ang code para sa pag-output ng isang linya ng code mula sa pangalawang halimbawa.

Code Paliwanag
int n = 0;

while (n < 4) { int m = 0;
while (m < 5) { System.out.print("A"); m++; }
System.out.println(); n++; }
 
Ang panlabas na loop ay lila. Ginagamit nito ang nvariable upang mabilang ang bilang ng mga pag-ulit ng loop.

Ang panloob na loop ay berde. Ginagamit nito ang mvariable upang mabilang ang bilang ng mga pag-ulit ng loop.

Kailangan nating tahasang ilipat ang cursor sa susunod na linya pagkatapos makumpleto ang panloob na loop. Kung hindi, ang lahat ng mga titik na nai-print ng programa ay mapupunta sa isang linya.

Ang output ng screen ay magiging:
AAAAA
AAAAA
AAAAA
AAAAA

Ang panlabas at panloob na mga loop ay dapat gumamit ng iba't ibang mga variable upang mabilang ang bilang ng mga pag-ulit ng loop. Kinailangan din naming idagdag ang System.out.println()utos pagkatapos ng panloob na loop, dahil ang loop na iyon ay nagpapakita ng mga titik As sa parehong linya. Kapag naipakita na ang mga titik sa isang linya, kailangang ilipat ng isang tao ang cursor sa isang bagong linya.



5. Paghahambing ng mga loop Java vs Pascal

Marami sa inyo ang nag-aral ng Pascal noong high school. Upang gawing mas madali para sa iyo na maunawaan ang materyal dito, tingnan ang paghahambing na ito ng whilemga loop na nakasulat sa Pascal at Java. Kung hindi mo kilala si Pascal, laktawan mo na lang ang bahaging ito.

Pascal Java
i := 3;
While i >= 0 Do
   Begin
      WriteLn(i);
      i := i - 1;
   End;
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
i := 0;
While i < 3 Do
   Begin
      WriteLn(i);
      i := i + 1;
   End;
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
IsExit := False;
While Not isExit Do
   Begin
      ReadLn(s);
      isExit :=  (s = 'exit');
   End;
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
While True Do
   WriteLn('C');
while (true)
   System.out.println("C");
While True Do
   Begin
     ReadLn(s);
     If s = 'exit' Then
       Break;
   End;
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}