DEV Community

Cover image for Part 7: All You Need to Know to Master Web Development With HTML CSS and JavaScript
Blackie
Blackie

Posted on • Edited on

Part 7: All You Need to Know to Master Web Development With HTML CSS and JavaScript

Conquering Control Flow: Your Guide to JavaScript's Decision-Making Power.

Contents

Introduction
Conditional Statements
Loops
Break and Continue
Projects
References and Resources

Unlocking Dynamic JavaScript with Control Flow

Control flow is like a director, guiding your code through various paths and decisions. It's essential for building interactive and responsive programs that adapt to user input and changing conditions. Here's a guide to mastering control flow in JavaScript, packed with examples and use cases:

Key Concepts and Examples

1. Conditional Statements:

  • if/else:

    • Example: "If the user is logged in, display their profile. Else, show the login page."
      if (isLoggedIn) {
        showProfile();
      } else {
        showLoginPage();
      }
    
  • switch/case:

    • Example: "Choose a language based on the user's selection."
      switch (selectedLanguage) {
        case "en":
          setLanguage("English");
          break;
        case "es":
          setLanguage("Spanish");
          break;
        default:
          setLanguage("English"); // Default option
      }
    

2. Loops:

  • for loop:

    • Example: "Count down from 10 to 1, displaying each number."
      for (let i = 10; i >= 1; i--) {
        console.log(i);
      }
    
  • while loop:

    • Example: "Repeat a quiz question until the user answers correctly."
      while (answer !== correctAnswer) {
        askQuestion();
        answer = getUserInput();
      }
    
  • for...of loop:

    • Example: "Display each item in a shopping cart."
      for (const item of cartItems) {
        console.log(item.name, item.price);
      }
    

3. Break and Continue:

  • Break:

    • Example: "Exit a loop when a specific condition is met."
      for (let i = 0; i < 100; i++) {
        if (foundItem) {
          break; // Exit the loop when item is found
        }
        // Continue searching...
      }
    
  • Continue:

    • Example: "Skip to the next iteration of a loop."
      for (let i = 0; i < numbers.length; i++) {
        if (numbers[i] % 2 === 0) {
          continue; // Skip even numbers
        }
        // Process odd numbers...
      }
    

Projects

Project 1: Coin Flipping Game

function playCoinGame() {
  let correctGuesses = 0;
  const totalFlips = 3; // Adjust for desired number of flips

  for (let i = 1; i <= totalFlips; i++) {
    const coinFlip = Math.random() >= 0.5 ? "heads" : "tails";
    console.log(`Flip ${i}: Guess heads or tails?`);

    let userGuess = "";
    while (userGuess !== "heads" && userGuess !== "tails") {
      userGuess = prompt("Enter your guess (heads or tails):").toLowerCase();
      if (userGuess !== "heads" && userGuess !== "tails") {
        console.log("Invalid guess. Please enter heads or tails.");
      }
    }

    if (userGuess === coinFlip) {
      console.log(`Correct! It's ${coinFlip}.`);
      correctGuesses++;
    } else {
      console.log(`Incorrect. It was ${coinFlip}.`);
    }
  }

  console.log(`You guessed ${correctGuesses} out of ${totalFlips} correctly.`);
}

playCoinGame();
Enter fullscreen mode Exit fullscreen mode

Project 2: Text-Based Adventure Game

let currentRoom = "start";

function startRoom() {
  console.log("You are in a dark forest.");
  console.log("There is a path to the north and a cave to the east.");
  let choice = prompt("Do you go north or east?");
  if (choice.toLowerCase() === "north") {
    currentRoom = "north";
  } else if (choice.toLowerCase() === "east") {
    currentRoom = "cave";
  } else {
    console.log("Invalid choice.");
    startRoom();
  }
}

// Add more rooms and choices as needed

startRoom();
Enter fullscreen mode Exit fullscreen mode

Project 3: Password Generator

function generatePassword(length, requirements) {
  let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-=[]{};':\"\\|,.<>/?";
  let password = "";

  for (let i = 0; i < length; i++) {
    let randomIndex = Math.floor(Math.random() * characters.length);
    let character = characters[randomIndex];

    // Check requirements (example)
    if (requirements.includes("uppercase") && !/[A-Z]/.test(password)) {
      character = character.toUpperCase();
    }

    password += character;
  }

  return password;
}

const password = generatePassword(12, ["uppercase", "number", "symbol"]);
console.log(password);
Enter fullscreen mode Exit fullscreen mode

References and Resources

Official Documentation:

Tutorials and Articles:

Books:

Videos:

Top comments (0)