logo

Ciklos Java

Ciklų kūrimas programavimo kalbomis yra funkcija, kuri palengvina komandų / funkcijų rinkinio vykdymą pakartotinai, o kai kurios sąlygos įvertinamos kaip teisingos. „Java“ siūlo tris būdus, kaip vykdyti kilpas. Nors visi būdai teikia panašias pagrindines funkcijas, skiriasi jų sintaksė ir būklės tikrinimo laikas.

java pateikia trijų tipų sąlyginius sakinius, šis antrasis tipas yra ciklas.



  • o ciklas: Nors kilpa yra valdymo srauto sakinys, leidžiantis pakartotinai vykdyti kodą, remiantis tam tikra Būlio sąlyga. Ciklas while gali būti laikomas pasikartojančiu if teiginiu.

Sintaksė:

while (boolean condition) { loop statements... }>

Java








/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >int> i=>0>;> >while> (i<=>10>)> >{> >System.out.println(i);> >i++;> >}> >}> }>

>

>

Išvestis

pirminių skaičių programa java
0 1 2 3 4 5 6 7 8 9 10>
  • Struktūrinė schema: for-loop-in-Java
    • Nors ciklas prasideda tikrinant Būlio sąlygą. Jei jis įvertintas kaip tiesa, tada ciklo korpuso teiginiai vykdomi, priešingu atveju vykdomas pirmasis po ciklo einantis sakinys. Dėl šios priežasties jis taip pat vadinamas Įėjimo valdymo kilpa
    • Kai sąlyga įvertinama kaip teisinga, ciklo korpuse esantys teiginiai vykdomi. Paprastai teiginiuose yra kintamojo, kuris apdorojamas kitai iteracijai, atnaujinimo reikšmė.
    • Kai sąlyga tampa klaidinga, ciklas baigiasi, o tai reiškia jos gyvavimo ciklo pabaigą.
  • kilpai: for loop pateikia glaustą ciklo struktūros rašymo būdą. Skirtingai nuo while ciklo, teiginys for sunaudoja inicijavimą, sąlygą ir padidinimą/sumažinimą vienoje eilutėje, taip užtikrinant trumpesnę, lengvai derinamą ciklo struktūrą.

Sintaksė:

for (initialization condition; testing condition;increment/decrement) { statement(s) }>

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >for> (>int> i=>0>;i<=>10>;i++)> >{> >System.out.println(i);> >}> >}> }>

>

>

Išvestis

0 1 2 3 4 5 6 7 8 9 10>
  • Struktūrinė schema:
    daryti, kol
      Inicijuojimo sąlyga: čia inicijuojame naudojamą kintamąjį. Tai žymi for ciklo pradžią. Jau deklaruotas kintamasis gali būti naudojamas arba kintamasis gali būti deklaruojamas, tik vietinėje cikle. Bandymo sąlyga: naudojama kilpos išėjimo sąlygai patikrinti. Ji turi grąžinti loginę reikšmę. Tai taip pat yra Įėjimo valdymo kilpa nes sąlyga patikrinama prieš vykdant ciklo sakinius. Teiginio vykdymas: Kai sąlyga įvertinama kaip teisinga, ciklo korpuse esantys teiginiai vykdomi. Didinimas / mažinimas: naudojamas kintamajam atnaujinti kitai iteracijai. Ciklo pabaiga: kai sąlyga tampa klaidinga, ciklas baigiasi, pažymėdamas jos gyvavimo ciklo pabaigą.
  • daryti kol: „do while“ ciklas yra panašus į ciklo while, tik tas skirtumas, kad jis patikrina būklę po teiginių vykdymo, todėl yra pavyzdys Išeikite iš valdymo kilpos.

Sintaksė:

do { statements.. } while (condition);>

Java




pavasario batų architektūra
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >int> i=>0>;> >do> >{> >System.out.println(i);> >i++;> >}>while>(i<=>10>);> >}> }>

>

>

Išvestis

0 1 2 3 4 5 6 7 8 9 10>
  • Struktūrinė schema:
    • do while ciklas prasideda teiginio (-ų) vykdymu. Pirmą kartą nėra jokios būklės tikrinimo.
    • Atlikus teiginius ir atnaujinus kintamojo reikšmę, tikrinama, ar sąlyga yra teisinga ar klaidinga. Jei jis įvertintas kaip tiesa, prasideda kita ciklo iteracija.
    • Kai sąlyga tampa klaidinga, ciklas baigiasi, o tai reiškia jos gyvavimo ciklo pabaigą.
    • Svarbu pažymėti, kad ciklas do-while vykdys savo sakinius bent vieną kartą prieš patikrinant bet kokią sąlygą, todėl yra išėjimo valdymo ciklo pavyzdys.

Kilpų spąstai

    Begalinis ciklas: Viena iš dažniausiai pasitaikančių klaidų diegiant bet kokį kilpą yra ta, kad ji gali niekada nepasitraukti, ty ciklas veikia begalinį laiką. Taip atsitinka, kai būklė dėl kokios nors priežasties nepavyksta. Pavyzdžiai: Infinite for loop :

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >for> (;;) {> >}> >}> }>

>

>

begalinis while ciklas:

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >while> (>true>)> >{> >// statement> >}> > >}> }>

>

>

Java




//Java program to illustrate various pitfalls.> public> class> LooppitfallsDemo> {> >public> static> void> main(String[] args)> >{> >// infinite loop because condition is not apt> >// condition should have been i>0.> >for> (>int> i =>5>; i !=>0>; i -=>2>)> >{> >System.out.println(i);> >}> >int> x =>5>;> >// infinite loop because update statement> >// is not provided.> >while> (x ==>5>)> >{> >System.out.println('In the loop');> >}> >}> }>

>

>

Kitas spąstas yra tai, kad galite ką nors įtraukti į savo kolekcijos objektą per kilpą ir gali pritrūkti atminties. Jei bandysite vykdyti toliau pateiktą programą, po kurio laiko bus pašalinta iš atminties išimtys.

modemas vs maršrutizatorius

Java




//Java program for out of memory exception.> import> java.util.ArrayList;> public> class> Integer1> {> >public> static> void> main(String[] args)> >{> >ArrayList ar =>new> ArrayList();> >for> (>int> i =>0>; i { ar.add(i); } } }>

>

dalinis latekso darinys

>

Išvestis:

Exception in thread 'main' java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.util.Arrays.copyOf(Unknown Source) at java.util.ArrayList.grow(Unknown Source) at java.util.ArrayList.ensureCapacityInternal(Unknown Source) at java.util.ArrayList.add(Unknown Source) at article.Integer1.main(Integer1.java:9)>

Įdėta kilpa:

Įdėtas ciklas reiškia kilpos sakinį kito ciklo sakinyje.

Naudojami įvairūs kilpų deriniai dėl kilpa, kol kilpa, daryti, kol kilpa.

Pvz., 1 Įdėta kilpai

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >for>(>int> i =>0>; i <>3>; i++){> >for>(>int> j =>0>; j <>2>; j++){> >System.out.println(i);> >}> >System.out.println();> >}> >}> }>

>

>

Išvestis

0 0 1 1 2 2>

Pvz., 2 Įdėta, kai ciklas

Java




import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int> i =>1>, j =>1>;> >while> (i <=>3>) {> >while> (j <=>3>) {> >System.out.print(j);> >j++;> >}> >i++;> >System.out.println(>''>);> >j =>1>;> >}> >}> }>

>

>

Išvestis

123 123 123>

Pvz., 3 Įdėtas do while ciklas

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int> row =>1>, column =>1>;> >int> x;> >do> {> >x =>4>;> >do> {> >System.out.print(>''>);> >x--;> >}>while> (x>= eilutė);> >column =>1>;> >do> {> >System.out.print(column +>' '>);> >column++;> >}>while> (column <=>5>);> >System.out.println(>' '>);> >row++;> >}>while> (row <=>5>);> >}> }>

>

>

Išvestis

atsitiktinis skaičius nuo 1 iki 10
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5>

Pvz., 4 Įdėtas while ir for ciklas

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int> weeks =>3>;> >int> days =>7>;> >int> i =>1>;> >// outer loop> >while> (i <= weeks) {> >System.out.println(>'Week: '> + i);> >// inner loop> >for> (>int> j =>1>; j <= days; ++j) {> >System.out.println(>' Days: '> + j);> >}> >++i;> >}> >}> }>

>

>

Išvestis

Week: 1 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7 Week: 2 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7 Week: 3 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7>