while循环语句

1519 更新于: 2021-07-16 读完约需 9 分钟

前言

在程序开发中,有时你可能希望连续多次执行某个操作。也就是说,你想多次重复地执行一行或者多行相同的代码,比如在控制台中打印5次相同的问候语“Hello”,按照我们已经学习过的知识,你的做法可能是这样的:

Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");

像上面的实现,重复写相同的代码是可以实现效果,但如果逻辑复杂一些,所有逻辑代码都要重复写,这显然是不方便管理和维护的。

C#语言提供了上述操作的流程控制,称之为循环控制,主要的循环控制语句有:while循环语句,do…while循环语句,for循环循环语句。

本节主要介绍while循环语句。

while语法

while循环的语法结构如下:

while(布尔表达式)
{
    //循环语句代码块
}

while循环的语法格式是比较简洁的,以while关键字开始,后面跟一个括号,括号里面需要一个布尔类型的条件。

只要布尔条件值为true(真),程序会一直从上到下依次执行while代码块中的代码。

因此,初始化操作应该在循环开始前完成,而递增或者递减操作应该在循环体内部执行。

一定注意确保循环正常退出,否则产生死循环
花括号后面没有分号

简单示例

int i = 0;
while (i<10)
{
    Console.WriteLine("当前值: {0}", i);
    i++;
}

输出结果:

当前值: 0
当前值: 1
当前值: 2
当前值: 3
当前值: 4
当前值: 5
当前值: 6
当前值: 7
当前值: 8
当前值: 9
//爬楼梯(8层楼)
int floorNumber = 1;
while (floorNumber<=8)
{
    Console.WriteLine("当前楼层: {0},请继续...", floorNumber);
    floorNumber++;
}
Console.WriteLine("成功到达");

输出结果:

当前楼层: 1,请继续...
当前楼层: 2,请继续...
当前楼层: 3,请继续...
当前楼层: 4,请继续...
当前楼层: 5,请继续...
当前楼层: 6,请继续...
当前楼层: 7,请继续...
当前楼层: 8,请继续...
成功到达

break

break关键字用在循环中表示跳出当前的循环体。

int i = 0;
while (true)
{
    Console.WriteLine("当前值: {0}", i);
    i++;
    if (i > 5)
    {
        Console.WriteLine($"i={i},退出循环.");
        break;
    }
}
Console.WriteLine("循环已结束");

输出结果:

当前值: 0
当前值: 1
当前值: 2
当前值: 3
当前值: 4
当前值: 5
i=6,退出循环.
循环已结束

continue

continue关键字用在循环中表示结束本次循环,进入下一次循环。

int i = 0;
while (true)
{
    i++;
    if (i == 2)
    {
        Console.WriteLine($"i={i},结束本次循环.");
        continue;
    }
    Console.WriteLine("当前值: {0}", i);
    if (i > 5)
    {
        Console.WriteLine($"i={i},退出循环.");
        break;
    }
}
Console.WriteLine("循环已结束");

输出结果:

当前值: 1
i=2,结束本次循环.
当前值: 3
当前值: 4
当前值: 5
当前值: 6
i=6,退出循环.
循环已结束

循环嵌套

int i = 0;
while (i<2)
{
    Console.WriteLine("当前i值: {0}", i);
    i++;
    int j=0;
    while(j<2){
        j++;
        Console.WriteLine("当前j值: {0}", j);
    }
}

输出结果:

当前i值: 0
当前j值: 1
当前j值: 2
当前i值: 1
当前j值: 1
当前j值: 2

完整的程序模拟实现

实现生活跑圈的例子:体育课上,老师安排同学们跑圈,每个人跑的圈数按照个人的表现情况来定。跑圈过程中可能会有的动作:跨栏,扔铅球。

  • 如果圈数等于1,则去跨栏点跨栏
  • 如果圈数等于2,则不跨栏也不扔铅球
  • 如果圈数等于3或者4,则去扔5个铅球
  • 如果某个同学有特殊情况,则立即停止跑圈
  • 每个人最多跑5圈
//跑圈计数器
int counter = 0;

//是否继续跑
bool keepRunning = true;

//是否有特殊情况
bool specialSituation = false;
while (keepRunning)
{
    //跑圈计数器加1
    counter++;
    if (specialSituation)
    {
        break;
    }

    if (counter == 1)
    {
        Console.WriteLine("跨栏");
    }

    if (counter == 2)
    {
        Console.WriteLine("不做其他活动");
        continue;
    }

    if (counter == 3 || counter == 4)
    {
        Console.WriteLine("扔5个铅球");
    }

    if (counter > 5)
    {
        keepRunning = false;
    }

    Console.WriteLine("你已经跑了{0}圈。", counter);
    if (keepRunning)
    {
        Console.WriteLine("还不达标,继续跑!!!");
    }
}

Console.WriteLine("你一共跑了{0}圈。", counter);

输出结果:

跨栏
你已经跑了1圈。
还不达标,继续跑!!!
不做其他活动
扔5个铅球
你已经跑了3圈。
还不达标,继续跑!!!
扔5个铅球
你已经跑了4圈。
还不达标,继续跑!!!
你已经跑了5圈。
还不达标,继续跑!!!
你已经跑了6圈。
你一共跑了6圈。

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

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

发表评论

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