Computer Science Principles
Course Progress
0/0
Objectives in LxD
3.4 Strings
3.4 Strings
3.3 Mathematical Expressions
3.3 Math Expressions
3.2 Data Abstractions
3.2 Data Abstractions
3.1 Variables & Assignments
3.1 Variables and Assignments
3.1 Variables and Assignments (Sample)
Intro to Python
Intro to Javascript
Variables and HTML DOM (Sample)
3.5 Boolean Expressions (PY)
3.5 Boolean Expressions (JS)
3.8 Iterations
3.7 Nested Conditionals
3.6 Conditionals
3.8 Iterations
3.7 Nested Conditionals
3.6 Conditionals
3.13 Developing Procedures
3.12 Calling Procedures
3.10 Lists
3.13 Developing Procedures
3.10 Lists
3.9 Developing Algorithms
3.17 Algorithmic Efficiency
3.9 Algorithms
3.17 Algorithmic Efficiency
3.15 Random Numbers (pseudocode)
3.15 Random Numbers (js)
3.15 Random Numbers (py)
BI 3 Review
Sprint View
Week 5
3.8 Iterations
3.8 Iterations
5 min read
- 3.8 Iterations 🔄
- 🔥 Loop Types
- 1. For Loop - When you know how many times
- 2. While Loop - When you don't know how many times
- 3. Iterating through arrays
- 🚀 Array Methods (Modern & Cool!)
- 🎮 Loop Control
- 🔥 Loop Types
3.8 Iterations 🔄
Iteration = repeating code until a condition is met
🔥 Loop Types
1. For Loop - When you know how many times
// For loop structure: for (initialization; condition; increment/decrement)
for (let i = 3; i >= 1; i--) { // Start at 3, continue while i >= 1, decrease by 1 each time
console.log(i); // Prints: 3, 2, 1
}
console.log("🚀 BLAST OFF!"); // Prints after loop completes
2. While Loop - When you don't know how many times
let lives = 3; // Initialize counter variable
while (lives > 0) { // Loop continues as long as condition is true
console.log(`You have ${lives} lives left`); // Show current value
lives--; // Decrease lives by 1 (prevents infinite loop!)
}
console.log("💀 Game Over!"); // Prints when lives reaches 0
3. Iterating through arrays
const colors = ["red", "blue", "green"]; // Array with 3 elements at indices 0, 1, 2
for (let i = 0; i < colors.length; i++) { // Start at 0, go until length (3)
console.log(colors[i]); // Access each element using bracket notation
}
%%javascript
// 🚀 Try these basic loops - run this cell!
console.log("=== FOR LOOP ===");
// For loop structure: for (initialization; condition; increment/decrement)
// let i = 3: Creates a counter variable starting at 3
// i >= 1: Loop continues as long as i is greater than or equal to 1
// i--: Decreases i by 1 after each iteration
for (let i = 3; i >= 1; i--) {
console.log(i); // Prints current value of i
}
console.log("🚀 BLAST OFF!"); // Prints after loop completes
console.log("\n=== WHILE LOOP ===");
let lives = 3; // Initialize lives counter
// While loop: continues as long as the condition (lives > 0) is true
// IMPORTANT: Must update the condition variable inside the loop to avoid infinite loops!
while (lives > 0) {
console.log(`You have ${lives} lives left`); // Template literal to show current lives
lives--; // Decrement lives by 1 each iteration (prevents infinite loop)
}
console.log("💀 Game Over!"); // Prints when lives reaches 0
%%javascript
// 🎯 Two ways to iterate arrays
const fruits = ["🍎", "🍌", "🍊"]; // Array with 3 elements (indices 0, 1, 2)
// Method 1: Traditional for loop (when you need the index)
// i = 0: Start at index 0 (first element)
// i < fruits.length: Continue while i is less than array length (3)
// i++: Move to next index after each iteration
for (let i = 0; i < fruits.length; i++) {
console.log(`${i}: ${fruits[i]}`); // Access array element using bracket notation
// Prints: "0: 🍎", "1: 🍌", "2: 🍊"
}
// Method 2: for...of loop (cleaner when you don't need index)
// 'fruit' represents each element directly (no index needed)
// More readable and less error-prone than traditional for loop
// Use this when you just need the values, not their positions
for (const fruit of fruits) {
console.log(`I love ${fruit}!`); // 'fruit' is the actual value, not the index
// Prints: "I love 🍎!", "I love 🍌!", "I love 🍊!"
}
🚀 Array Methods (Modern & Cool!)
const numbers = [1, 2, 3, 4, 5];
// map = transform each element, returns NEW array
const doubled = numbers.map(n => n * 2);
// Result: [2, 4, 6, 8, 10]
// filter = keep only elements that pass the test
const evens = numbers.filter(n => n % 2 === 0);
// Result: [2, 4] (keeps only even numbers)
// find = return FIRST element that passes the test
const bigNumber = numbers.find(n => n > 3);
// Result: 4 (stops searching after first match)
🎮 Loop Control
// break = exit loop immediately
for (let i = 1; i <= 10; i++) {
if (i === 5) break; // Stops at 5
console.log(i); // Prints: 1, 2, 3, 4
}
// continue = skip to next iteration
for (let i = 1; i <= 5; i++) {
if (i === 3) continue; // Skips 3
console.log(i); // Prints: 1, 2, 4, 5
}
%%javascript
// 🎯 Find the first vowel in your name
const name = "YourName"; // Change this to your actual name!
// Loop through each character in the name string
for (let i = 0; i < name.length; i++) {
const letter = name[i].toLowerCase(); // Convert to lowercase for easier comparison
// .includes() checks if the string "aeiou" contains the current letter
// This is a shorthand way to check if letter is a vowel
if ("aeiou".includes(letter)) {
console.log(`First vowel: ${letter} at position ${i}`);
break; // BREAK: exits the loop immediately when first vowel is found
// Without break, it would find ALL vowels
}
}
// Note: If no vowel is found, nothing prints (could add message after loop)
%%javascript
// 🎯 Try it! Modify this countdown
// Standard countdown: 5, 4, 3, 2, 1
// i = 5: Start at 5
// i >= 1: Stop when i is less than 1
// i--: Subtract 1 each time (same as i = i - 1)
for (let i = 5; i >= 1; i--) {
console.log(i); // Prints: 5, 4, 3, 2, 1
}
console.log("🚀 Launch!");
// Challenge: Make it count by 2s from 10 to 0
// Hint: Change i = 5 to i = 10, and i-- to i -= 2 (subtract 2 each time)
// Expected output: 10, 8, 6, 4, 2, 0