We also use for loops to iterate over sequences like strings and arrays. We can run into problems when we manipulate a sequence while iterating on it.
For example, if we append elements to a list while iterating on it:
List<string> fruits = new List<string> { "banana", "orange" };
foreach (var fruit in fruits) {
fruits.Add("kivi");
}
Every time we enter this loop, we add a kivi item to the end of the list that we are iterating through, so we would never make it to the end of the list: it would keep growing forever.
C# stops this for us: after the first item is added, the loop's next step throws an InvalidOperationException ("Collection was modified; enumeration operation may not execute").
Changing a collection while looping over it is always a bug. And when nothing stops the loop, the collection keeps growing forever: an infinite loop. As programmers, we want to make sure we never write infinite loops, as they make our program run forever and completely unusable.
Assignment
Follow the Coding Tutorial and let's practice with infinite for loops!
Hint
Look at the examples above if you get stuck.
Free plan: 30 tutor messages. PRO is unlimited.
