V tomto výukovém programu se pomocí příkladů dozvíte o smyčce while a o smyčce do … while.
V programování se smyčky používají k opakování bloku kódu. Například pokud chcete zobrazit zprávu 100krát, můžete použít smyčku. Je to jen jednoduchý příklad; se smyčkami toho dosáhnete mnohem více.
V předchozím kurzu jste se dozvěděli o smyčce JavaScript for. Zde se budete učit o while
a do… while
smyčky.
JavaScript při smyčce
Syntaxe while
smyčky je:
while (condition) ( // body of loop )
Tady,
while
Smyčka vyhodnotí stav uvnitř závorek()
.- Pokud se podmínka vyhodnotí
true
, provede se kód uvnitřwhile
smyčky. - Stav je opět vyhodnocen.
- Tento proces pokračuje, dokud podmínka je
false
. - Když se podmínka vyhodnotí
false
, smyčka se zastaví.
Chcete-li se dozvědět více o podmínkách , navštivte Porovnání JavaScriptu a Logické operátory.
Vývojový diagram while Loop

Příklad 1: Zobrazení čísel od 1 do 5
// program to display numbers from 1 to 5 // initialize the variable let i = 1, n = 5; // while loop from i = 1 to 5 while (i <= n) ( console.log(i); i += 1; )
Výstup
1 2 3 4 5
Takto funguje tento program.
Opakování | Variabilní | Podmínka: i <= n | Akce |
---|---|---|---|
1. místo | i = 1 n = 5 | true | 1 je vytištěn. i se zvýší na 2 . |
2. místo | i = 2 n = 5 | true | 2 je vytištěn. i se zvýší na 3 . |
3. místo | i = 3 n = 5 | true | 3 je vytištěn. i se zvýší na 4 . |
4. místo | i = 4 n = 5 | true | 4 je vytištěn. i se zvýší na 5 . |
5 | i = 5 n = 5 | true | 5 je vytištěn. i se zvýší na 6 . |
6. | i = 6 n = 5 | false | Smyčka je ukončena |
Příklad 2: Součet pouze kladných čísel
// program to find the sum of positive numbers // if the user enters a negative numbers, the loop ends // the negative number entered is not added to sum let sum = 0; // take input from the user let number = parseInt(prompt('Enter a number: ')); while(number>= 0) ( // add all positive numbers sum += number; // take input again if the number is positive number = parseInt(prompt('Enter a number: ')); ) // display the sum console.log(`The sum is $(sum).`);
Výstup
Zadejte číslo: 2 Zadejte číslo: 5 Zadejte číslo: 7 Zadejte číslo: 0 Zadejte číslo: -3 Součet je 14.
Ve výše uvedeném programu je uživatel vyzván k zadání čísla.
Zde parseInt()
se používá, protože prompt()
bere vstup od uživatele jako řetězec. A když jsou přidány číselné řetězce, chová se to jako řetězec. Například '2' + '3' = '23'
. Takže parseInt()
převede číselný řetězec na číslo.
while
Smyčka pokračuje, dokud uživatel zadá číslo negativní. Během každé iterace se do sum
proměnné přidá číslo zadané uživatelem .
Když uživatel zadá záporné číslo, smyčka se ukončí. Nakonec se zobrazí celková částka.
JavaScript dělá … zatímco Loop
Syntaxe do… while
smyčky je:
do ( // body of loop ) while(condition)
Tady,
- Nejprve se provede tělo smyčky. Poté je podmínka vyhodnocena.
- Pokud se podmínka vyhodnotí
true
, tělo smyčky uvnitřdo
příkazu se provede znovu. - Podmínka je vyhodnocena znovu.
- Pokud se podmínka vyhodnotí
true
, tělo smyčky uvnitřdo
příkazu se provede znovu. - Tento proces pokračuje, dokud se stav nevyhodnotí
false
. Poté se smyčka zastaví.
Poznámka : do… while
smyčka je podobná while
smyčce. Jediným rozdílem je, že ve do… while
smyčce je tělo smyčky provedeno alespoň jednou.
Vývojový diagram úkolů … zatímco Loop

Podívejme se na fungování do… while
smyčky.
Příklad 3: Zobrazení čísel od 1 do 5
// program to display numbers let i = 1; const n = 5; // do… while loop from 1 to 5 do ( console.log(i); i++; ) while(i <= n);
Výstup
1 2 3 4 5
Takto funguje tento program.
Opakování | Variabilní | Podmínka: i <= n | Akce |
---|---|---|---|
i = 1 n = 5 | nezaškrtnuto | 1 je vytištěn. i se zvýší na 2 . | |
1. místo | i = 2 n = 5 | true | 2 je vytištěn. i se zvýší na 3 . |
2. místo | i = 3 n = 5 | true | 3 je vytištěn. i se zvýší na 4 . |
3. místo | i = 4 n = 5 | true | 4 je vytištěn. i se zvýší na 5 . |
4. místo | i = 5 n = 5 | true | 6 je vytištěn. i se zvýší na 6 . |
5 | i = 6 n = 5 | false | Smyčka je ukončena |
Příklad 4: Součet kladných čísel
// to find the sum of positive numbers // if the user enters negative number, the loop terminates // negative number is not added to sum let sum = 0; let number = 0; do ( sum += number; number = parseInt(prompt('Enter a number: ')); ) while(number>= 0) console.log(`The sum is $(sum).`);
Výstup 1
Zadejte číslo: 2 Zadejte číslo: 4 Zadejte číslo: -500 Součet je 6.
Here, the do… while
loop continues until the user enters a negative number. When the number is negative, the loop terminates; the negative number is not added to the sum variable.
Output 2
Enter a number: -80 The sum is 0.
The body of the do… while
loop runs only once if the user enters a negative number.
Infinite while Loop
If the condition of a loop is always true
, the loop runs for infinite times (until the memory is full). For example,
// infinite while loop while(true)( // body of loop )
Here is an example of an infinite do… while
loop.
// infinite do… while loop const count = 1; do ( // body of loop ) while(count == 1)
In the above programs, the condition is always true
. Hence, the loop body will run for infinite times.
for Vs while Loop
A for
loop is usually used when the number of iterations is known. For example,
// this loop is iterated 5 times for (let i = 1; i <=5; ++i) ( // body of loop )
A while
a do… while
smyčky jsou obvykle používány, když je neznámý počet iterací. Například,
while (condition) ( // body of loop )