for循环语句

1845 更新于: 2021-07-17 读完约需 10 分钟

前面两节我们学习了循环控制语句中的while和do…while语句。

本节将学习常规循环控制语句中的最后一种—for循环语句。

for循环相比while循环语句,虽然两个都是循环语句,但for循环在结构上要比较while稍微复杂一些。语法结构如下:

for (变量初始化; 条件; 步长)
{
    //循环体语句块
}

语法结构解析

  • 以关键字for开头,后面紧跟一对中括号
  • 中括号中包含三个部分,每个部分以分号隔开
  • 第一部分为变量声明和初始化,此处声明的变量(变量名可以任意命名,只要符合变量声明规则即可)将被第二部分和第三部分使用
  • 第二部分为返回布尔值的条件表达式
  • 第三部分为变量的步长,步长可以递增,也可以递减
  • 循环体用一对花括号包裹,花括号后面不需要分号

执行过程分解

for循环执行过程分解如下图:

for循环执行过程分解图

示例一

结合示例,分析for循环的语法结构和执行过程。

以下是一段简单的循环输出代码:

for (int i = 0; i < 10; i++)
{
    Console.WriteLine("当前i的值为: {0}", i);
    if(i==8)
    {
        Console.WriteLine("8是一个幸运数字");
    }
}

运行结果如下:

当前i的值为: 0
当前i的值为: 1
当前i的值为: 2
当前i的值为: 3
当前i的值为: 4
当前i的值为: 5
当前i的值为: 6
当前i的值为: 7
当前i的值为: 8
8是一个幸运数字
当前i的值为: 9

示例二

求1到100数字的累加结果:

int sum = 0;
for (int i = 0; i <= 100; i++)
{
    sum += i;
}
Console.WriteLine("累加结果为:{0}",sum);
Console.ReadLine();

运行结果如下:

累加结果为:5050

break中止循环

C#语言的for循环语句块中,如果可以使用关键字break来强制中止循环,示例代码如下:

for (int i = 0; i < 10; i++)
{
    if( i == 5 )
        break;
    Console.WriteLine("当前i的值为: {0}", i);
}

注意:break关键字后面有分号(;)

运行结果如下:

当前i的值为: 0
当前i的值为: 1
当前i的值为: 2
当前i的值为: 3
当前i的值为: 4

continue跳过本次循环

在C#语言中,同while循环类似,for循环也提供了使用关键字continue跳过本次循环的功能,示例代码如下:

for (int i = 0; i < 10; i++)
{
    if( i == 5 )
        continue;
    Console.WriteLine("当前i的值为: {0}", i);
}

注意:continue关键字后面有分号(;)

运行结果如下:

当前i的值为: 0
当前i的值为: 1
当前i的值为: 2
当前i的值为: 3
当前i的值为: 4
当前i的值为: 6
当前i的值为: 7
当前i的值为: 8
当前i的值为: 9

死循环示例

在C#语言的for循环语句中,声明的三个部分(变量初始化,条件,步长)都是可选的,所以,如下的示例的代码是一个死循环:

for (  ;  ; )
{
    Console.Write(1);
}

所以,为避免死循环,我们需要手动指定for循环的退出条件,示例如下:

int i = 0;
for(;;)
{
    if (i < 10)
    {
        Console.WriteLine("当前i的值为: {0}", i);
        i++;
    }
    else
        break;
}

只有当i小于10才执行循环体中的语句,否则强制中止循环。

运行结果如下:

当前i的值为: 0
当前i的值为: 1
当前i的值为: 2
当前i的值为: 3
当前i的值为: 4
当前i的值为: 5
当前i的值为: 6
当前i的值为: 7
当前i的值为: 8
当前i的值为: 9

调整步长

在C#语言的for语句中,我们可以任意设置和调整符合规范的循环步长,比如以下示例中,我们将循环变量设置成了小数,步长也是以0.01每次增加,代码如下:

for (double d = 1.01D; d < 1.10; d+= 0.01D)
{
    Console.WriteLine("当前i的值为: {0}", d);
}

运行结果如下:

当前i的值为: 1.01
当前i的值为: 1.02
当前i的值为: 1.03
当前i的值为: 1.04
当前i的值为: 1.05
当前i的值为: 1.06
当前i的值为: 1.07
当前i的值为: 1.08
当前i的值为: 1.09

递减步长

在C#语言的for循环语句中,除了可以将步长设置为递增,我们还可以将步长设置成递减模式,示例代码如下:

for(int i = 10; i > 0;i--)
{
    Console.WriteLine("当前i的值为: {0}", i);
}

运行结果如下:

当前i的值为: 9
当前i的值为: 8
当前i的值为: 7
当前i的值为: 6
当前i的值为: 5
当前i的值为: 4
当前i的值为: 3
当前i的值为: 2
当前i的值为: 1

初始化多个变量

在C#语言的for循环声明变量时,还可以同时声明多个变量,如下示例中,我们同时声明了ij两个变量,并且分别设置了这两个变量的不同增长方式(i以步长等于1的值递增,j以步长为通的值递减):

for (int i = 0, j = 10; i <= 10; i++, j--)
{
    Console.WriteLine("当前 i = {0}, j = {1} ", i, j);
}
Console.ReadLine();

运行结果如下:

当前 i = 0, j = 10
当前 i = 1, j = 9
当前 i = 2, j = 8
当前 i = 3, j = 7
当前 i = 4, j = 6
当前 i = 5, j = 5
当前 i = 6, j = 4
当前 i = 7, j = 3
当前 i = 8, j = 2
当前 i = 9, j = 1
当前 i = 10, j = 0

嵌套循环

在程序开发中,有时候单层的循环并不能完全满足实际需求,比如要输出一个5行3列的表格,外层循环表示表格的行(row),内层循环表示表格的列(column)。

当外层循环(行)每递增一次时,都会重新执行内层循环(列),使用for语句的嵌套循环模拟代码如下:

for (int row = 1; row <= 5; row++)
{
    for (int column = 1; column <= 3; column++)
    {
        Console.Write($"第{row}行第{column}列\t");
    }
    Console.WriteLine("");
}

运行结果如下:

第1行第1列      第1行第2列      第1行第3列
第2行第1列      第2行第2列      第2行第3列
第3行第1列      第3行第2列      第3行第3列
第4行第1列      第4行第2列      第4行第3列
第5行第1列      第5行第2列      第5行第3列

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » C#程序设计基础(入门篇) » for循环语句 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册