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:
- START đ - Vart ska rĂ€knaren börja? (
int i = 1) - VILLKOR âïž - NĂ€r ska loopen sluta? (
i <= 10) - 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:
i = 1- Börja pÄ 1- Kolla
i <= 10- Sant? Kör koden! i++- Ăka i med 1- 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Ängerforeach- nÀr du gÄr igenom listorList.ForEach()- kompakt för listor- Alltid tÀnk pÄ villkoret sÄ du inte fÄr oÀndliga loopar!
đŻ Ăvningar
- đą GrundlĂ€ggande: Skriv en for-loop som rĂ€knar frĂ„n 1 till 20
- đĄ Utmanande: AnvĂ€nd foreach för att berĂ€kna summan av alla tal i en array
- đŽ 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! đđ