C# 迭代语句综合演练第 1 部分 - while、do
介绍
当你开始学习 C# 之类的编程语言时,最重要的概念之一就是流程控制。我们知道程序是由语句组成的。我们组合这些语句的方式使程序更加强大。这就是流程控制的职责:控制程序执行的流程。
在许多情况下,逐个顺序执行是不够的,因此流程控制提供了很多有用的语句,例如条件语句、迭代语句、跳转语句和其他高级功能。在本指南中,我们将重点介绍 C# 中的一个重要流程控制:迭代语句。或者,用一个更熟悉的术语来说:循环。
Loop是一个非常强大的语句。它甚至可以用几句话来描述一个完美程序员的生活:
while (alive)
{
eat();
//sleep();
code();
}
由于这是针对初学者的指南,因此我尽力使用生动的视觉效果和示例来帮助您理解。
- 首先,我将从一个有趣的场景开始。
- 接下来我会把各类迭代语句的代码模板和流程图展示给大家。
- 此外,我们对其进行了比较,并总结了最佳实践。
- 最后我们来说一下高级用法。
本指南(第 1 部分)将重点介绍基本概念并介绍一个重要的迭代语句:while / do while循环。
入门
设想
有些读者可能会好奇。什么是迭代语句?为什么我们需要它?
想象一下这样的场景:
开发一个早教机器人来教婴儿如何数数。
我们先从 1 数羊到 4 开始。
顺序版本
如果使用顺序语句,我们可以直接达到目的:
// count from 1 to 4
Console.WriteLine("{0} little sheep", 1);
Console.WriteLine("{0} little sheep", 2);
Console.WriteLine("{0} little sheep", 3);
Console.WriteLine("{0} little sheep", 4);
这个暴力破解版本有几个问题:
- 那数鱼怎么样?你必须更改每一行。重构代码时要小心,它可能会带来不一致的错误。
- 等宝宝长大了,再从1数到100怎么办?这绝对是一个浩大的工程啊!
- 从m数到n怎么样?你永远不知道从哪里开始和结束。
循环版本
所以,当你想重复做某件事时,循环(迭代语句)可以帮助你。这是循环版本(如果你不熟悉for的语法,不用担心,我将在下一节中解释它):
int m = 1, n = 4; // start from m, end to n, both are included
// use for loop to print repetitively
for (int i = m; i <= n; ++i)
{
Console.WriteLine("{0} little sheep", i);
}
从这个例子中,我们可以看到迭代语句有很多优点:
- 提取重复的逻辑,重用代码。使程序更容易重构,并降低出现错误的可能性。
- 使得代码简洁,增强可读性。
- 更加灵活地接受变化。
- 解决顺序执行无法解决的更复杂问题,例如从m到n的循环。
while 循环
设想
想象一下这样的场景:
开发一个傻傻的聊天机器人,目前它只学会了一个命令:“结束对话”。
while和do while循环适合这种情况。
尽管
句法
在此之前,我先介绍一下C#中while的语法,这是代码模板:
while (condition)
{
code_block;
}
while语句由一个条件和一个code_block组成:
- code_block表示循环中执行的逻辑。它可以包含多个语句,甚至可以包含另一个循环块。
- 条件是一个布尔表达式。它决定是否继续循环或退出循环。
流程图
我将绘制一个 while 循环的流程图,以帮助您更好地理解流程控制。
while循环过程如下:
- 检查是否满足条件。
- 如果条件为真,则处理code_block中的循环逻辑。
- 重复上述过程,直到条件为假,退出循环。
实践
现在我们准备通过以下方式实现这个愚蠢的聊天机器人:
Console.WriteLine("welcome to chat with me");
string command;
// read command from input, and continue looping while command != "end conversation"
while ((command = Console.ReadLine()) != "end conversation")
{
Console.WriteLine("sorry, I don't understand the meaning of {0}", command);
}
Console.WriteLine("glad to chat with you, bye~");
我们来试一试。聊天机器人会一直处于对话循环中,直到我们输入“结束对话”。
welcome to chat with me
>> hi
sorry, I don't understand the meaning of hi
>> what do you know?
sorry, I don't understand the meaning of what do you know?
>> end conversation
glad to chat with you, bye~
做而
设想
我们来稍微修改一下上面的场景:
即使用户说“结束对话”,聊天机器人也会假装听不懂。
对于这种情况,do while是更好的选择。
句法
另外还给出了do while的代码模板,其中code_block和condition与while loop相同,如果需要复习可以参考上一节。
do {
code_block;
} while (condition)
流程图
以下是do while循环的流程图:
do while循环的过程是:
- 在code_block中处理循环逻辑。
- 评估code_block</stro
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~