C# 程序流控制之循环语句

循环

c# 提供了4种不同的循环机制(for、while、do...while 和 foreach),在满足某个条件之前,可以重复执行代码块。

for 循环

c#的 for 循环提供的迭代循环机制是在执行下一次迭代前, 测试是否满足某个条件,其语法如下:

for (initializer; condition; iterator):
    statement(s);
  • initializer 是指在执行第一次循环前要计算的表达式(通常把一个局部变量初始化为循环计数器)
  • condition 是在每次循环新迭代之前的表达式,也可以说是循环条件(它必须等于 true,才能执行下一次迭代)
  • iterator 是每次迭代完要计算的表达式(通常是跌增循环计数器)

当 condition 等于 false 时, 迭代停止。

for 是一个预测试循环,循环条件是在执行循环语句前计算的,如果循环条件为 false,循环语句就根本不会执行。

for 循环非常适合用于一个语句或语句块重复执行预定的次数。 

// 这段代码输出 0 ~ 99 的整数

for (int i = 0; i < 100; i++)
{
    Console.WriteLine(i);
}

// 1. 这里声明了一个 int 类型的变量  i, 它把初始化为 0, 用作循环计数器。
// 2. 接着判断 i 是否小于 100. 这个条件等于 true 就会进入循环体内。
// 3. 紧接着 输出 i 的值。 然后给 i 加 1, 再次执行 第二条接着判断
// 4. 当 i 等于 100 时, 循环停止。

嵌套的 for 循环非常常见, 在每次迭代外部循环时,内部循环都要彻底执行完毕。 这种模式通常用于在矩形多维数组中遍历

每个元素。 最外部的循环遍历每一行, 内部的循环遍历某行上的每个列。

for(int i = 0; i < 100; i+=10)
{
    for(int j = i; j < i + 10; j++)
    {
        Console.Write(" " + j);
    }
    Console.WriteLine();
}

while 循环

与 for 循环一样, while 也是一个预测试循环。其语法是类似的,但 while 循环只有一个表达式:

while(condition)
    statement(s);

与 for 循环不同的是, while 循环最常用于以下情况: 在循环开始前,不知道重复执行一个语句或语句块的次数。

通常,在某次迭代中, while 循环体中的语句把布尔标志设置为 false, 结束循环。

bool condition = false;

while(!condition)
{
    DoSomeWork();
    condition = CheckCondition();
}

do ... while 循环

do...while 循环是 while 循环的后测试版本。 这意味着该循环的条件要在执行完循环体之后评估。 

因此 do...while 循环适用于循环体至少执行一次的情况:

bool condition;

do
{
    // TODO   1. 注意这里不管条件满足不满足 都会先执行
} while(condition); // 2. 执行完{}里面的代码后,才到这里进行判断, 如果为true 就会继续执行上面的块代码, 如果为false 就会结束循环。

foreach 循环

foreach循环可以迭代集合中的每一项。 现在不必考虑集合的准确概念(后面会有章节专门讲解),

只需要知道集合是一种包含一系列对象的对象即可。 从技术上看,要使用集合对象, 就必须支持 IEnumerable 接口。

集合的例子有 c# 数组 、 System.Collection 名称空间中的集合类,以及用户定义的集合类。

// 假设 arrayOfInts 是一个 int 类型的数组

foreach (int temp in arrayOfInts)
{
    Console.WriteLine( temp );
}

foreach 循环每次迭代数组中的一个元素。 它把每个元素的值放在 int 类型的变量 temp 中, 然后执行一次循环迭代。

注意, foreach 循环不能改变集合中各项(上面的 temp)的值,所以下面的代码不会编译:

foreach (int temp in arrayOfInts)
{
    temp += 1; // 这里修改了temp 的值
    Console.WriteLine( temp );
}

如果需要修改迭代集合中的值, 应使用 for 循环。

发布了27 篇原创文章 · 获赞 0 · 访问量 157

猜你喜欢

转载自blog.csdn.net/weixin_39328209/article/details/105558106