For-loopar 🔄

💡 Vad Ă€r for-loopar?

For-loopar Ă€r som att sĂ€ga till datorn: “RĂ€kna frĂ„n 1 till 10 och gör detta för varje nummer!” 🎯

TĂ€nk dig att du ska:

  • Skriva “Jag kommer inte vara sen” 100 gĂ„nger pĂ„ tavlan ✏
  • RĂ€kna alla Ă€pplen i en korg 🍎
  • GĂ„ igenom alla elever i klassen đŸ‘„

IstÀllet för att göra samma sak om och om igen, anvÀnder du en for-loop som automatiskt gör jobbet Ät dig!

🎯 TL;DR

For-loop = automatisk upprepning med rÀknare. for(start; villkor; steg) - perfekt nÀr du vet exakt hur mÄnga gÄnger nÄgot ska hÀnda.

📋 Efter att ha lĂ€st detta kommer du att kunna

  • Skriva grundlĂ€ggande for-loopar som rĂ€knar 🔱
  • AnvĂ€nda foreach för att gĂ„ igenom listor 📝
  • FörstĂ„ skillnaden mellan for och foreach ⚖
  • Undvika vanliga loop-misstag đŸš«
  • VĂ€lja rĂ€tt loop för rĂ€tt situation ✅

🔧 Anatomin av en for-loop


for (START; VILLKOR; STEG)
{
    // Kod som upprepas
}

De tre delarna:

  1. START 🏁 - Vart ska rĂ€knaren börja? (int i = 1)
  2. VILLKOR ⁉ - NĂ€r ska loopen sluta? (i <= 10)
  3. STEG 👆 - Hur Ă€ndras rĂ€knaren? (i++)

🚀 For-loopar i praktiken

🟱 GrundlĂ€ggande rĂ€kning


// RÀkna frÄn 1 till 10
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine($"RĂ€knare: {i}");
}

// Output:
// RĂ€knare: 1
// RĂ€knare: 2
// ...
// RĂ€knare: 10

Vad hÀnder:

  1. i = 1 - Börja pÄ 1
  2. Kolla i <= 10 - Sant? Kör koden!
  3. i++ - Öka i med 1
  4. Upprepa tills villkoret blir falskt

🟡 RĂ€kna bakĂ„t (nedraĂ€kning)


// NedraÀkning frÄn 10 till 0
for (int i = 10; i >= 0; i--)
{
    Console.WriteLine($"NedraÀkning: {i}");
}
Console.WriteLine("🚀 BLAST OFF!");

// Output:
// NedraÀkning: 10
// NedraÀkning: 9
// ...
// NedraÀkning: 0
// 🚀 BLAST OFF!

🔮 Hoppa i steg


// RÀkna bara jÀmna tal
for (int i = 0; i <= 20; i += 2)
{
    Console.WriteLine($"JĂ€mnt tal: {i}");
}

// Output: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20

🔁 Foreach - GĂ„ igenom listor

Foreach Ă€r som att gĂ„ igenom en korg med Ă€pplen - du tar ett Ă€pple i taget tills korgen Ă€r tom! 🍎

🟱 GrundlĂ€ggande foreach


// GÄ igenom alla superhjÀltar
string[] superheroes = { "Superman", "Batman", "Wonder Woman", "Flash" };

foreach (string hero in superheroes)
{
    Console.WriteLine($"🩁 {hero} rĂ€ddar vĂ€rlden!");
}

// Output:
// 🩁 Superman rĂ€ddar vĂ€rlden!
// 🩁 Batman rĂ€ddar vĂ€rlden!
// 🩁 Wonder Woman rĂ€ddar vĂ€rlden!
// 🩁 Flash rĂ€ddar vĂ€rlden!

Varför foreach Àr bra:

  • ✅ Enkelt - du slipper rĂ€knare och index
  • ✅ LĂ€sbart - tydligt att du gĂ„r igenom alla element
  • ✅ SĂ€kert - inga index-fel

🟡 Foreach med olika datatyper


// Lista med tal
List<int> scores = new List<int> { 85, 92, 78, 96, 88 };
int total = 0;

foreach (int score in scores)
{
    total += score;
    Console.WriteLine($"Betyg: {score}");
}

Console.WriteLine($"Genomsnitt: {total / scores.Count}");

🔄 VĂ€nda ordning med Reverse


string[] names = { "Anna", "Bertil", "Cecilia" };

// GÄ igenom baklÀnges
foreach (string person in names.Reverse())
{
    Console.WriteLine($"👋 HejdĂ„ {person}!");
}

// Output:
// 👋 HejdĂ„ Cecilia!
// 👋 HejdĂ„ Bertil!
// 👋 HejdĂ„ Anna!

⚡ Inline foreach (avancerat)

List.ForEach() Àr ett kompakt sÀtt att gÄ igenom listor - fungerar bara med List<T>, inte arrayer!


// Kompakt sÀtt att skriva ut alla namn
List<string> names = new List<string> { "Marcus", "Lisa", "Johan" };

// IstÀllet för vanlig foreach...
foreach (string person in names)
{
    Console.WriteLine(person);
}

// ...kan du skriva sÄ hÀr:
names.ForEach(person => Console.WriteLine($"👋 Hej {person}!"));

Lambda-uttryck förklarat:

  • person = variabelnamn för varje element
  • => = “gör detta”
  • Console.WriteLine(...) = vad som ska hĂ€nda

🔄 Inline foreach baklĂ€nges


List<string> colors = new List<string> { "Röd", "Grön", "BlÄ" };

colors.Reverse(); // VĂ€nd listan
colors.ForEach(color => Console.WriteLine($"🎹 {color}"));

⚖ For vs Foreach - NĂ€r anvĂ€nda vad?

🎯 AnvĂ€nd FOR nĂ€r:

  • Du vet exakt hur mĂ„nga gĂ„nger (“gör detta 10 gĂ„nger”)
  • Du behöver en rĂ€knare/index
  • Du vill hoppa över vissa vĂ€rden
  • Du vill rĂ€kna bakĂ„t

// Perfekt för for-loop
for (int i = 0; i < 100; i++)
{
    Console.WriteLine($"Rad nummer {i}");
}

📋 AnvĂ€nd FOREACH nĂ€r:

  • Du vill gĂ„ igenom alla element i en lista/array
  • Du bryr dig inte om index-nummer
  • Du vill ha ren, lĂ€sbar kod
  • Du vill undvika index-fel

// Perfekt för foreach
string[] students = { "Anna", "Bertil", "Cecilia" };
foreach (string student in students)
{
    Console.WriteLine($"👋 Hej {student}!");
}

⚠ Vanliga misstag

Misstag 1: OĂ€ndlig loop


// 🚹 FEL - kommer aldrig sluta!
for (int i = 1; i > 0; i++) // i blir bara större och större!
{
    Console.WriteLine(i);
}

// ✅ RÄTT - kommer sluta pĂ„ 10
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(i);
}

Misstag 2: Ändra lista under foreach


List<string> names = new List<string> { "Anna", "Bertil" };

// 🚹 FEL - Ă€ndrar listan under iteration
foreach (string person in names)
{
    names.Add("Ny person"); // KRASCHAR!
}

// ✅ RÄTT - anvĂ€nd for-loop för Ă€ndringar
for (int i = 0; i < names.Count; i++)
{
    Console.WriteLine(names[i]);
    // Nu kan du Àndra listan sÀkert
}

📚 Sammanfattning

For-loopar = kontrollerad upprepning:

  • for - nĂ€r du vet antal gĂ„nger
  • foreach - nĂ€r du gĂ„r igenom listor
  • List.ForEach() - kompakt för listor
  • Alltid tĂ€nk pĂ„ villkoret sĂ„ du inte fĂ„r oĂ€ndliga loopar!

🎯 Övningar

  1. 🟱 GrundlĂ€ggande: Skriv en for-loop som rĂ€knar frĂ„n 1 till 20
  2. 🟡 Utmanande: AnvĂ€nd foreach för att berĂ€kna summan av alla tal i en array
  3. 🔮 Expert: Skapa en multiplikationstabell med nĂ€stlade for-loopar

😄 Obligatorisk dad joke

Varför Àr for-loopar sÄ bra pÄ att hÄlla koll pÄ tiden?

För att de alltid rĂ€knar med att det ska gĂ„ bra! 🕒😄


Upp

Upp


Licens: Apache 2.0 | © 2023 Marcus Medina, Campus Mölndal. Alla rÀttigheter förbehÄllna.
Du fÄr anvÀnda och modifiera detta verk enligt villkoren i Apache License, Version 2.0. Du fÄr inte anvÀnda detta verk för kommersiella ÀndamÄl utan tillstÄnd frÄn upphovsmannen.