logo

Java smyčky

Zkuste to na GfG Practice Pokrok' title=

Smyčky v programování umožňují, aby se sada instrukcí spouštěla ​​vícekrát na základě podmínky. V Javě existují tři typy smyček, které jsou vysvětleny níže:

1. pro smyčku

Cyklus for se používá, když známe počet iterací (víme, kolikrát chceme úlohu opakovat). Příkaz for obsahuje podmínku inicializace a přírůstek/snižování na jednom řádku. 

Příklad: Níže uvedený Java program ukazuje cyklus for, který tiskne čísla od 0 do 10 na jeden řádek.



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 + ' ');  }  } } 

Výstup
0 1 2 3 4 5 6 7 8 9 10 

Syntax:

for (inicializace; podmínka; zvýšení/snížení) {

// kód, který se má provést

}

Obrázek níže ukazuje vývojový diagram cyklu for:

Zatímco smyčka' title=Vývojový diagram for -loop
  • Inicializační podmínka : Zde inicializujeme používanou proměnnou. Označuje začátek cyklu for. Lze použít již deklarovanou proměnnou nebo lze proměnnou deklarovat pouze jako lokální smyčku.
  • Podmínka testování: Používá se pro testování výstupní podmínky pro smyčku. Musí vrátit booleovskou hodnotu. Je to také vstupní řídicí smyčka, protože podmínka je kontrolována před provedením příkazů smyčky.
  • Provedení výpisu : Jakmile je podmínka vyhodnocena jako pravdivá, provedou se příkazy v těle smyčky.
  • Zvýšení/ snížení : Používá se pro aktualizaci proměnné pro další iteraci.
  • Ukončení smyčky :Když se podmínka stane nepravdivou, smyčka se ukončí a značí konec jejího životního cyklu.

Poznámka : Existuje další forma cyklu for známá jako Vylepšená smyčka for nebo (pro každou smyčku).

vyhledávací algoritmy

Vylepšená smyčka for (pro každou)

Tato smyčka se používá k iteraci přes pole nebo kolekce.

Příklad : Níže uvedený Java program demonstruje Enhanced for smyčku (pro každou smyčku) pro iteraci polem a tisk jmen.

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);  }  } } 

Výstup
Name: Sweta Name: Gudly Name: Amiya 

Syntax:

for (proměnná dataType: arrayOrCollection) {

// kód, který se má provést

}

2. zatímco smyčka

Smyčka while se používá, když chceme zkontrolovat podmínku před provedením těla smyčky.

Příklad: Níže uvedený program Java ukazuje smyčku while, která tiskne čísla od 0 do 10 na jeden řádek.

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++;  }  } } 

Výstup
0 1 2 3 4 5 6 7 8 9 10 

Syntax:

while (condition) {

// kód, který se má provést

}

Níže uvedený obrázek ukazuje vývojový diagram smyčky while:

prohlášení bash if
Do-while-loop' loading='lazy' title=Vývojový diagram smyčky while
  • Zatímco smyčka začíná kontrolou booleovské podmínky. Pokud je vyhodnocena jako true, jsou provedeny příkazy těla smyčky, jinak se provede první příkaz následující po cyklu. Z tohoto důvodu se také nazývá vstupní regulační smyčka
  • Jakmile je podmínka vyhodnocena jako pravdivá, provedou se příkazy v těle smyčky. Normálně příkazy obsahují aktualizační hodnotu pro proměnnou zpracovávanou pro další iteraci.
  • Když se podmínka stane nepravdivou, smyčka se ukončí, což znamená konec jejího životního cyklu.

3. do-while Loop

Smyčka do-while zajišťuje provedení bloku kódu alespoň jednou před kontrolou stavu.

Příklad : Níže uvedený program Java demonstruje smyčku do-while, která tiskne čísla od 0 do 10 na jeden řádek.

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);  } } 

Výstup
0 1 2 3 4 5 6 7 8 9 10 

Syntax:

udělat {

// kód, který se má provést

} while (podmínka);

Níže uvedený obrázek ukazuje vývojový diagram smyčky do-while:

' loading='lazy' title=Vývojový diagram smyčky do-while
  • smyčka do while začíná provedením příkazu. Napoprvé nedochází ke kontrole žádného stavu.
  • Po provedení příkazů a aktualizaci hodnoty proměnné je podmínka zkontrolována na hodnotu true nebo false. Pokud je vyhodnocena jako true, začne další iterace smyčky.
  • Když se podmínka stane nepravdivou, smyčka se ukončí, což znamená konec jejího životního cyklu.
  • Je důležité poznamenat, že smyčka do-while provede své příkazy alespoň jednou před kontrolou jakékoli podmínky, a proto je příkladem výstupní řídicí smyčky.

Nejčastější chyby ve smyčce a jak se jim vyhnout

Pokud se smyčky nepoužívají správně, mohou představovat úskalí a chyby, které ovlivňují čitelnost a funkčnost kódu. Níže jsou uvedena některá běžná úskalí smyček:

1. Nekonečné smyčky

Toto je jedna z nejčastějších chyb při implementaci jakéhokoli druhu smyčky, protože se nemusí nikdy ukončit, protože smyčka běží nekonečně dlouho. K tomu dochází, když podmínka z nějakého důvodu selže.

Typy nekonečných smyček:

  • nekonečné pro smyčku
  • nekonečné zatímco Loop

Příklad: Zde oba příklady demonstrují nekonečné smyčky.

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');  }  } } 

výstup: Když spustíte oba výše uvedené kódy, zobrazí se chyba TLE (Time Limit Exceeded).

2. Chyby Off-by-One

Chyby Off-by-One jsou způsobeny, když smyčka běží o jeden nebo o jeden méně, než jste chtěli. V zásadě se to stane, když není správně nastavena podmínka smyčky.

Příklad : Níže uvedený program Java demonstruje chybu Off-by-One, kde se smyčka spustí 6krát a my jsme očekávali, že se spustí 5krát.

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. Úprava proměnných smyčky uvnitř smyčky

Když změníme podmínku smyčky (jako i) uvnitř smyčky, může to způsobit, že smyčka přeskočí určité iterace nebo se bude chovat způsobem, který jsme neočekávali. To může vést k chybám nebo neočekávanému chování.

java řetězec pole

Příklad : Níže uvedený Java program demonstruje úpravu proměnné smyčky uvnitř smyčky, která způsobí, že smyčka přeskakuje určité iterace a chová se neočekávaně.

Java
// 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. Tělo prázdné smyčky

Prázdné tělo smyčky se objeví, když je smyčka zapsána k iteraci, ale neprovádí se uvnitř smyčky žádné operace. Spouštění smyčky bez jakýchkoli užitečných operací uvnitř může být matoucí.

Příklad: Níže uvedený program Java ukazuje tělo prázdné smyčky.

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  }  } } 

Pro toto nebude generován žádný výstup, protože tělo smyčky je prázdné.

Souhrnná tabulka

Typ smyčky

Kdy použít

Kontrola stavu

Provede alespoň jednou?

pro smyčku

Když chcete přesné iterace

Před tělem smyčky Nazývá se Entry-controlled.

žádný

jak inicializovat pole v Javě

zatímco smyčka

Když potřebujete nejprve zkontrolovat stav.

Před tělem smyčky Nazývá se Entry-controlled.

žádný

smyčka do-while

Když potřebujete alespoň jednou běhat

Po těle smyčky Říká se tomu Exit-controlled.

Ano

pro každou smyčku

Když zpracujete všechny sbírkové předměty

Interně řešeno

žádný

Související příspěvky:

  • pro smyčku
  • zatímco smyčka
  • smyčka do-while
Vytvořit kvíz