JavaScript Control Flow and Iteration Patterns
Codnitional Branching
Range-based decisions utilize if-else ladders:
const temperature = 28;
if (temperature >= 30) {
console.log("Hot weather: Use air conditioning");
} else if (temperature >= 20) {
console.log("Mild weather: Open windows");
} else if (temperature >= 10) {
console.log("Cool weather: Wear a jacket");
} else {
console.log("Cold weather: Heating required");
}
Discrete value matching leverages switch statements with fall-through beahvior:
const grade = 'B';
switch (grade) {
case 'A':
console.log("Excellent performance");
break;
case 'B':
case 'C':
console.log("Satisfactory work");
break;
case 'D':
console.log("Needs improvement");
break;
default:
console.log("Invalid grade");
}
Iteration Constructs
The while loop evaluates conditions prior to execution:
let step = 1;
while (step <= 5) {
console.log(`Processing step ${step}`);
step++;
}
When guaranteed execution is requried, do-while ensures the block runs at least once:
let sumSquares = 0;
let val = 1;
do {
sumSquares += val * val;
val++;
} while (val <= 5);
console.log(sumSquares); // 55
The for loop consolidates counter management:
let product = 1;
for (let factor = 1; factor <= 5; factor++) {
product *= factor;
}
console.log(product); // 120
Nested Loop Patterns
Generating tabular data requires nested iteration:
for (let row = 1; row <= 9; row++) {
let lineOutput = '';
for (let col = 1; col <= row; col++) {
lineOutput += `${col}×${row}=${col * row}\t`;
}
console.log(lineOutput);
}