语法差异
- for循环:语法结构为
for (初始化表达式; 条件表达式; 迭代表达式) { 循环体 }
,需要手动初始化循环变量、定义循环条件和更新循环变量。
- foreach循环:语法结构为
foreach (var item in collection) { 循环体 }
,无需手动管理循环变量,直接对集合中的每个元素进行迭代。
功能差异
- for循环:功能更为灵活,可以根据需求控制循环的起始、结束和步长,适用于需要精确控制循环次数的场景。
- foreach循环:专门用于遍历集合,每次迭代自动获取集合中的下一个元素,无需手动索引,简化了遍历操作,但不能直接修改集合元素(除非集合元素本身是可修改的引用类型)。
适用场景差异
- for循环:适用于需要对循环进行精确控制,例如按照特定步长迭代、根据复杂条件结束循环等场景。
- foreach循环:适用于简单地遍历集合元素,无需修改元素本身,只想读取元素值的场景。
代码示例
for循环对数组元素进行特定条件筛选并修改
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] % 2 == 0)
{
numbers[i] *= 2;
}
}
foreach (var num in numbers)
{
Console.WriteLine(num);
}
foreach循环遍历字典输出键值对
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 }
};
foreach (var kvp in dict)
{
Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}