Loops and Ranges
Do While Loops
Run the body before checking the condition.
do-while-loop
A `do...while` loop always executes its body at least once, then checks whether another iteration should run.
Do While Loops
do_while_loop.js
Replay: real traced execution (multi-file project)
const target = 3;
let current = 0;
let passes = 0;
do {
current += 1;
passes += 1;
} while (current < target);
console.log("target=" + target);
console.log("current=" + current);
console.log("passes=" + passes);
const target = 0;
let current = 0;
let passes = 0;
do {
current += 1;
passes += 1;
} while (current < target);
console.log("target=" + target);
console.log("current=" + current);
console.log("passes=" + passes);
const target = 5;
let current = 0;
let passes = 0;
do {
current += 1;
passes += 1;
} while (current < target);
console.log("target=" + target);
console.log("current=" + current);
console.log("passes=" + passes);
target ← 3, current ← 0, passes ← 0
1const target→ 3 = 3; //@target=0, 52let current→ 0 = 0;3let passes→ 0 = 0;4do {current ← 1, passes ← 1
pass 1 of 32let current = 0;3let passes = 0;4do {5 current += 1;6 passes += 1;7} while (current < target);values this step1current1passesAll 3 passes — pass 1 is the card above pass currentpasses1 1 1 2 2 2 3 3 3 console.log("target=" + target);
6 passes += 1;7} while (current < target);89console.log("target=" + target3);10console.log("current=" + current3);11console.log("passes=" + passes3);outputtarget=3 current=3 passes=3
target ← 0, current ← 0, passes ← 0
1const target→ 0 = 0;2let current→ 0 = 0;3let passes→ 0 = 0;4do {current ← 1, passes ← 1
2let current = 0;3let passes = 0;4do {5 current += 1;6 passes += 1;7} while (current < target);values this step1current1passesconsole.log("target=" + target);
6 passes += 1;7} while (current < target);89console.log("target=" + target0);10console.log("current=" + current1);11console.log("passes=" + passes1);outputtarget=0 current=1 passes=1
target ← 5, current ← 0, passes ← 0
1const target→ 5 = 5;2let current→ 0 = 0;3let passes→ 0 = 0;4do {current ← 1, passes ← 1
pass 1 of 52let current = 0;3let passes = 0;4do {5 current += 1;6 passes += 1;7} while (current < target);values this step1current1passesAll 5 passes — pass 1 is the card above pass currentpasses1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 console.log("target=" + target);
6 passes += 1;7} while (current < target);89console.log("target=" + target5);10console.log("current=" + current5);11console.log("passes=" + passes5);outputtarget=5 current=5 passes=5