JavaRush /Java Blog /Random-TL /Para sa Loop sa Java

Para sa Loop sa Java

Nai-publish sa grupo
Sinasabi nila na ang pinakamahusay na programmer ay isang tamad na programmer. Sa halip na magsagawa ng parehong uri ng mga aksyon nang maraming beses, gagawa siya ng isang algorithm na gagawa ng trabaho para sa kanya. At gagawin niya ito ng maayos upang hindi na kailangang muling gawin ito. Paano gamitin para sa loop sa Java - 1Upang maiwasan ang pagsusulat ng parehong code nang paulit-ulit, naimbento ang mga loop. Isipin natin na kailangan nating magpakita ng mga numero mula 0 hanggang 99 sa console. Code na walang loop:
System.out.println(0);
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
// And so on
Ang code na ito ay kukuha ng 100 linya! Ang dami. At narito kung ano ang magiging hitsura nito sa isang loop:
for(int i = 0; i < 100; i++) {
   System.out.println(i);
}
3 lines lang!

Ano ang para sa mga loop?

Ang for loop ay isang control structure ng program code na sumisira sa linearity ng execution ng algorithm at nagbibigay-daan sa iyong isagawa ang tinukoy na code nang maraming beses. Halimbawa, kailangan mong uminom ng 30 patak ng gamot. Ang algorithm ay magiging katulad nito:
  1. Maghanda ng baso.
  2. Buksan ang takip.
  3. Kumuha ng 1 drop.
  4. Kumuha ng 2 patak.
  5. ...
  6. Kumuha ng 30 drop.
  7. Isara ang gamot.
  8. Kunin ang natanggap na bahagi.
Ang algorithm na ito ay maaaring ipaliwanag nang mas mabilis:
  1. Maghanda ng baso.
  2. Buksan ang drip cap.
  3. Kumuha ng 30 patak.
  4. Isara ang gamot.
  5. Kunin ang natanggap na bahagi.
Ginagamit namin ang for loop halos araw-araw sa pakikipag-usap sa ibang tao: “...20 hakbang pababa sa kalye...”, “...gumawa ng 10 pag-uulit at isa pang 5 sa 2 beses na mas mabagal...”, “.. .gumawa ng 5 pagbili sa iba't ibang kategorya at makakuha ng premyo…” Maaari akong magpatuloy nang mahabang panahon, ngunit malinaw ang kahulugan. Sa Java, ang for loop ay mahalaga upang mapanatiling maikli at maigsi ang iyong code.

Paano gumagana ang para sa loop

Ang isang para sa loop ay ginagamit tulad nito:
for(<начальная точка>; <condition выхода>; <операторы счетчика>) {
	// Loop body
}
Пример перебора цифр от 0 до 5 и вывод каждой в консоль:
for(int i = 0; i < 5; i++) {
   System.out.println(i);
}
Konklusyon:

0
1
2
3
4
Kung isasalin natin ang entry na ito sa wika ng tao, makukuha natin ang sumusunod: " Lumikha ng variable i na may paunang halaga na 0, hanggang umabot ito sa 5, magdagdag ng 1 dito at sa bawat hakbang ay isulat ang halaga ng i sa console ." Ang para sa loop sa Java ay batay sa tatlong yugto, na maaaring katawanin ng sumusunod na diagram: Paano gumamit ng for loop sa Java - 2Ang kundisyon para sa pag-alis sa loop ay isang Boolean na expression. Kung ito ay hindi totoo, ang loop ay magtatapos. Sa halimbawa sa itaas, ang variable iay dinadagdagan ng 1. Kung ang halaga nito ay mas mababa sa 5, magpapatuloy ang loop. Ngunit sa sandaling iito ay maging mas malaki sa o katumbas ng 5, ang cycle ay titigil. Ang counter operator ay isang expression na nagsasagawa ng conversion sa isang counter variable. Sa halimbawa sa itaas, ang variable iay nadagdagan ng 1. Iyon ay, ang loop ay isasagawa nang eksaktong 5 beses. Kung ang counter operator ay nagdagdag ng 2 sa variable i, mag-iiba ang resulta:
for(int i = 0; i < 5; i = i + 2) {
   System.out.println(i);
}
Konklusyon:

0
2
4
Maaari mo ring i-multiply ang isang variable, hatiin, itaas sa isang kapangyarihan, sa pangkalahatan, gawin ang anumang gusto mo. Ang pangunahing bagay ay ang pagbabago ay nagreresulta sa isang numero. Ang katawan ng loop ay anumang code na maaaring isagawa. Sa halimbawa sa itaas, ang katawan ng loop ay naglalabas ng halaga ng variable i sa console, ngunit ang mga nilalaman ng katawan na ito ay limitado ng gawain at imahinasyon. Ang pagbubuod ng buong scheme, ang prinsipyo nito para sa loop ay ang mga sumusunod: ang code na nasa katawan ng loop ay isasagawa nang kasing dami ng bilang ng mga conversion na gagawin ng counter operator bago maabot ang kundisyon para sa paglabas sa loop . Kung itinakda mo ang kondisyon ng paglabas ng loop bilang true:
for(int i = 0; true; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Pagkatapos ang code pagkatapos ng loop ay mamarkahan ng isang error unreachable statement, dahil hindi ito kailanman isasagawa. Isang hamon para sa katalinuhan: bilang resulta ng pagpapatakbo ng code sa ibaba, magiging Loop endedoutput ba ang " " sa console o tatakbo ba ang loop nang walang katapusan?
for(int i = 0; i > -1; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Sagot: magkakaroon. Ang variable na i ay maaga o huli ay maaabot ang pinakamataas na halaga nito, at ang karagdagang pagtaas ay gagawin itong pinakamataas na negatibong halaga, bilang resulta kung saan ang kundisyon ng paglabas ay masisiyahan (i < = -1).

para sa Bawat loop

Kapag nagtatrabaho sa mga loop, minsan kailangan mong umulit sa mga array o koleksyon. Kadalasan maaari kang umulit sa pamamagitan ng isang array gamit ang isang for loop:
public void printAllElements(String[] stringArray) {
   for(int i = 0; i < stringArray.length; i++) {
       System.out.println(stringArray[i]);
   }
}
At ito ay tama. Gayunpaman, upang umulit sa lahat ng mga elemento ng array nang paisa-isa, naisip nila ang forEach construction. Ang pirma nito ay ang mga sumusunod:
for(<Тип element> <Name переменной, куда будет записан очередной элемент> : <Название массива>) {
	// Loop body
}
Maaari kang umulit sa isang hanay ng mga string at i-print ang bawat isa sa console sa sumusunod na paraan:
public void printAllElements(String[] stringArray) {
   for(String s : stringArray) {
       System.out.println(s);
   }
}
Maikli at maikli din. Higit sa lahat, hindi na kailangang isipin ang counter at ang kondisyon ng paglabas, lahat ay tapos na para sa amin.

Paano ginagamit ang mga loop

Ngayon tingnan natin ang ilang halimbawa ng paggamit ng for loop sa Java upang malutas ang iba't ibang problema.

Baliktad na cycle (mula sa mas malaki hanggang sa mas maliit)

for(int i = 5; i > 0; i--) {
   System.out.println(i);
}
Konklusyon:

5
4
3
2
1

Maraming mga variable at pagdaragdag ng counter sa katawan ng loop

Maaari kang gumamit ng maramihang mga variable sa isang para sa loop, halimbawa maaari silang ma-convert sa isang counter statement:
int a = 0;
for(int i = 5; i > 0; i--, a++) {
   System.out.print("Step: " + a + " Meaning: ");
   System.out.println(i);
}
Konklusyon:

Шаг: 0 Значение: 5
Шаг: 1 Значение: 4
Шаг: 2 Значение: 3
Шаг: 3 Значение: 2
Шаг: 4 Значение: 1
O magdeklara ng dalawang variable at loop hanggang sa magkapantay sila sa isa't isa:
for(int i = 5, j = 11; i != j; i++, j--) {
   System.out.println("i: " + i + " j: " + j);
}
Konklusyon:

i: 5 j: 11
i: 6 j: 10
i: 7 j: 9
Malamang na ang pagkilos na ito ay may anumang halaga, ngunit kapaki-pakinabang na malaman ang tungkol sa posibilidad na ito. Maaari ka ring lumikha ng mga panloob na loop sa loob ng for loop. Sa kasong ito, ang bilang ng mga loop na hakbang ay paramihin:
for(int i = 0; i < 5; i++) {
   System.out.print(i + " | ");
   for(int j = 0; j < 5; j++) {
       System.out.print(j + " ");
   }
   System.out.print('\n');
}
Konklusyon:

0 | 0 1 2 3 4 
1 | 0 1 2 3 4 
2 | 0 1 2 3 4 
3 | 0 1 2 3 4 
4 | 0 1 2 3 4
Sa isang counter loop, jposible na ma-access ang counter ng panlabas na loop. Ginagawa nitong mainam na paraan ang mga nested loop upang tumawid sa two-dimensional, three-dimensional, at iba pang array:
int[][] array = { {0, 1, 2, 3, 4 },
                       {1, 2, 3, 4, 5},
                       {2, 3, 4, 5, 6},
                       {3, 4, 5, 6, 7}};

for(int i = 0; i < array.length; i++) {
   for(int j = 0; j < array[i].length; j++) {
       System.out.print(array[i][j] + " ");
   }
   System.out.print('\n');
}
Konklusyon:

0 1 2 3 4 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 

Maagang pagkumpleto ng cycle

Kung kailangan mong matakpan ang isang loop habang pinoproseso ang isang loop, gamitin ang operator break, na humihinto sa kasalukuyang katawan ng loop. Nilaktawan din ang lahat ng kasunod na pag-ulit:
public void getFirstPosition(String[] stringArray, String element) {
   for (int i = 0; i < stringArray.length; i++) {
       if(stringArray[i].equals(element)) {
           System.out.println(i);
           break;
       }
   }
}
Ipi-print ng pamamaraan ang posisyon ng unang hinanap na elemento sa array:
String[] array = {"one", "two", "three", "Jeronimo"};
getFirstPosition(array, "two");
Konklusyon:

1

Walang katapusang cycle

Ang isa pang paraan upang lumikha ng infinite for loop ay ang iwanang walang laman ang counter declaration area, exit condition, at counter statement:
for (;;) {
}
Ngunit tandaan na sa karamihan ng mga kaso ang isang walang katapusang loop ay katibayan ng isang lohikal na error. Ang ganitong loop ay dapat magkaroon ng kondisyon sa paglabas. Paano gumamit ng for loop sa Java - 3
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION