Programmēšanas cilpas ļauj instrukciju kopai palaist vairākas reizes, pamatojoties uz nosacījumu. Java ir trīs veidu cilpas, kas ir izskaidrotas tālāk:
1. cilpai
For cilpa tiek izmantota, ja mēs zinām iterāciju skaitu (mēs zinām, cik reizes mēs vēlamies atkārtot uzdevumu). Priekšraksts for ietver inicializācijas nosacījumu un palielināšanu/samazināšanu vienā rindā.
Piemērs: Tālāk redzamā Java programma demonstrē for cilpu, kas vienā rindā drukā skaitļus no 0 līdz 10.
Java
// Java program to demonstrates the working of for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 10; i++) { System.out.print(i + ' '); } } }
Izvade
0 1 2 3 4 5 6 7 8 9 10
Sintakse:
for (inicializācija; nosacījums; palielinājums/samazināts) {
// izpildāmais kods
}
Tālāk esošajā attēlā ir parādīta for cilpas plūsmas diagramma:
For -cilpas blokshēma- Inicializācijas nosacījums : Šeit mēs inicializējam izmantoto mainīgo. Tas iezīmē for cilpas sākumu. Var izmantot jau deklarētu mainīgo vai var deklarēt tikai lokālo cilpu.
- Pārbaudes nosacījums: To izmanto, lai pārbaudītu cilpas izejas nosacījumu. Tam ir jāatgriež Būla vērtība. Tā ir arī ievades vadības cilpa, jo stāvoklis tiek pārbaudīts pirms cilpas paziņojumu izpildes.
- Paziņojuma izpilde : Kad nosacījums ir novērtēts kā patiess, tiek izpildīti priekšraksti cilpas pamattekstā.
- Pieaugums/ Samazinājums : to izmanto mainīgā atjaunināšanai nākamajai iterācijai.
- Cilpas izbeigšana : Kad nosacījums kļūst nepatiess, cilpa beidzas, atzīmējot tā dzīves cikla beigas.
Piezīme : ir vēl viens for cilpas veids, kas pazīstams kā Uzlabota cilpai vai (katrai cilpai).
kruskal algoritms
Uzlabota cilpai (katrai)
Šī cilpa tiek izmantota, lai atkārtotu masīvus vai kolekcijas.
Piemērs : Tālāk sniegtā Java programma demonstrē uzlaboto cilpu (katrai cilpai), lai atkārtotu masīvu un drukātu nosaukumus.
Java// Java program to demonstrate // the working of for each loop import java.io.*; class Geeks { public static void main(String[] args) { String[] names = { 'Sweta' 'Gudly' 'Amiya' }; for (String name : names) { System.out.println('Name: ' + name); } } }
Izvade
Name: Sweta Name: Gudly Name: Amiya
Sintakse:
for (data tipa mainīgais : arrayOrCollection) {
// izpildāmais kods
}
2. kamēr Loop
Cilpa while tiek izmantota, ja mēs vēlamies pārbaudīt stāvokli pirms cilpas pamatteksta izpildes.
Piemērs: Tālāk redzamā Java programma parāda kamēr cilpu, kas vienā rindā drukā skaitļus no 0 līdz 10.
Java// Java program to demonstrates // the working of while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; while (i <= 10) { System.out.print(i + ' '); i++; } } }
Izvade
0 1 2 3 4 5 6 7 8 9 10
Sintakse:
kamēr (stāvoklis) {
// izpildāmais kods
}
Zemāk redzamajā attēlā parādīta laika cilpas plūsmas diagramma:
k-nn algoritms
while-cilpas blokshēma- Kamēr cilpa sākas ar Būla stāvokļa pārbaudi. Ja tas tiek novērtēts kā patiess, tiek izpildīti cilpas pamatteksta paziņojumi, pretējā gadījumā tiek izpildīts pirmais paziņojums pēc cilpas. Šī iemesla dēļ to sauc arī par ievades vadības cilpu
- Kad nosacījums ir novērtēts kā patiess, tiek izpildīti priekšraksti cilpas pamattekstā. Parasti priekšraksti satur atjaunināšanas vērtību mainīgajam, kas tiek apstrādāts nākamajai iterācijai.
- Kad nosacījums kļūst nepatiess, cilpa beidzas, kas iezīmē tā dzīves cikla beigas.
3. do-while Loop
Cilpa do-while nodrošina koda bloka izpildi vismaz vienu reizi pirms stāvokļa pārbaudes.
Piemērs : Tālāk redzamā Java programma demonstrē cilpu, kurā tiek veikta izpilde, kas vienā rindā drukā skaitļus no 0 līdz 10.
Java// Java program to demonstrates // the working of do-while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; do { System.out.print(i + ' '); i++; } while (i <= 10); } }
Izvade
0 1 2 3 4 5 6 7 8 9 10
Sintakse:
darīt {
// izpildāmais kods
} while (nosacījums);
Zemāk esošajā attēlā ir parādīta cilpas “darīt, kamēr” plūsmas diagramma:
Do-while cilpas blokshēma- do while cilpa sākas ar paziņojuma izpildi. Pirmo reizi netiek pārbaudīts neviens stāvoklis.
- Pēc paziņojumu izpildes un mainīgā vērtības atjaunināšanas nosacījumam tiek pārbaudīta patiesa vai nepatiesa vērtība. Ja tas tiek novērtēts uz patiesu, sākas nākamā cilpas iterācija.
- Kad nosacījums kļūst nepatiess, cilpa beidzas, kas iezīmē tā dzīves cikla beigas.
- Ir svarīgi atzīmēt, ka do-while cilpa izpildīs savus paziņojumus vismaz vienu reizi pirms jebkura nosacījuma pārbaudes, un tāpēc tas ir izejas vadības cilpas piemērs.
Biežākās cilpas kļūdas un kā no tām izvairīties
Ja cilpas netiek izmantotas pareizi, tās var radīt nepilnības un kļūdas, kas ietekmē koda veiktspējas lasāmību un funkcionalitāti. Tālāk ir norādītas dažas izplatītākās cilpu nepilnības:
1. Bezgalīgas cilpas
Šī ir viena no visizplatītākajām kļūdām, ieviešot jebkāda veida cilpas, jo tā var nekad neiziet, proti, cilpa darbojas bezgalīgi. Tas notiek, ja stāvoklis kāda iemesla dēļ neizdodas.
Bezgalīgo cilpu veidi:
- bezgalīgs priekš Loop
- bezgalīga, kamēr cilpa
Piemērs: Šeit abi piemēri parāda bezgalīgās cilpas.
Infinite For Loop// Java program to demonstrate // the infinite for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i--) { System.out.println( 'This loop will run forever'); } } }
Infinite While Loop // Java Program to demonstrate // the infinite while loop import java.io.*; class Geeks { public static void main(String[] args) { while(true) { System.out.println( 'Basic example of infinte loop'); } } }
Izvade: Palaižot abus iepriekš minētos kodus, tiks parādīta kļūda TLE (Time Limit Exceeded).
2. Vienreizējas kļūdas
Vienreizējas kļūdas rodas, ja cilpa tiek palaista vairāk vai vienu reizi mazāk, nekā vēlējāties. Būtībā tas notiek, ja cilpas nosacījums nav iestatīts pareizi.
Piemērs : Tālāk redzamā Java programma parāda kļūdu, kas rodas vienā vietā, kur cilpa darbojas 6 reizes, un mēs paredzējām, ka tā darbosies 5 reizes.
Java// Java Program to demonstrates Off-by-One Errors import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 5; i++) { System.out.print(i + ' '); } } }
3. Cilpas mainīgo modificēšana cilpas iekšpusē
Ja cilpas iekšpusē mainām cilpas nosacījumu (piemēram, i), cilpa var izlaist noteiktas iterācijas vai rīkoties tā, kā mēs negaidījām. Tas var izraisīt kļūdas vai neparedzētu darbību.
Piemērs : Tālāk redzamā Java programma demonstrē cilpas mainīgā modificēšanu cilpas iekšpusē, kā rezultātā cilpa izlaiž noteiktas iterācijas un uzvedas negaidīti.
baitu masīvs uz virkniJava
// Java program demonstrates // modification in i variable import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i == 2) { // Modifies the loop variable and skips // the next iteration i++; } System.out.println(i); } } }
4. Empty Loop Body
Tukšs cilpas pamatteksts rodas, ja cilpa ir ierakstīta iterācijai, bet neveic nekādas darbības cilpas iekšienē. Cilpas palaišana bez noderīgām darbībām tajā var būt mulsinoša.
Piemērs: Zemāk esošā Java programma demonstrē tukšas cilpas pamattekstu.
Java// Java program to demonstrates Empty loop body import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // Empty body no operations } } }
Šim nolūkam netiks ģenerēta nekāda izvade, jo cilpas pamatteksts ir tukšs.
Kopsavilkuma tabula
Cilpas veids | Kad lietot | Stāvokļa pārbaude | Izpilda vismaz vienu reizi? |
|---|---|---|---|
cilpai | Kad vēlaties precīzas iterācijas | Pirms cilpas korpusa To sauc par Entry-controlled. | nē |
kamēr cilpa | Kad jums ir nepieciešams vispirms pārbaudīt stāvokli. | Pirms cilpas korpusa To sauc par Entry-controlled. virkne līdz rakstzīmei | nē |
do-while cilpa | Kad vismaz vienu reizi jāskrien | Pēc cilpas korpuss To sauc par Exit-controlled. | jā |
katrai cilpai | Kad apstrādājat visus kolekcijas priekšmetus | Apstrādāti iekšēji | nē |
Saistītās ziņas:
- cilpai
- kamēr cilpa
- do-while cilpa