首页 > 编程笔记 > C#笔记 阅读:2

C# while循环的用法(非常详细,附带实例)

学习和使用 C# 语言的目的是使用它编写出能够解决现实生活中问题的程序。生活中存在很多重复性的工作,有时甚至不知道这种工作需要重复的次数,那么如何用简单的 C# 语句解决这种复杂的、带有重复性的问题呢?

C# 中提供了循环控制语句来解决这类问题。C# 中的循环语句主要有 while、do…while 和 for 这 3 种语句,本节将首先对 while 循环语句的使用进行讲解。

C# while循环的用法

while 语句用来实现“当型”循环结构,它的语法格式如下:
while(表达式)
{
    语句
}
表达式一般是一个关系表达式或一个逻辑表达式,其表达式的值应该是一个逻辑值真或假(true 和 false),当表达式的值为真时,开始循环执行语句;而当表达式的值为假时,退出循环,执行循环外的下一条语句。循环每次都是执行完语句后回到表达式处重新开始判断,重新计算表达式的值。

while 循环的流程图如下图所示:


图 1 while循环的流程图

【实例 1】使用 while 循环语句挑战高斯,通过程序实现 1 到 100 的累加,代码如下:
static void Main(string[] args)
{
    int iNum = 1; // iNum从1到100递增
    int iSum = 0; // 记录每次累加后的结果
    while (iNum <= 100) // iNum <= 100 是循环条件
    {
        iSum += iNum; // 把iNum每次的值累加到上次累加的结果中
        iNum++; // 每次循环iNum的值加1
    }
    // 输出结果
    Console.WriteLine("1到100的累加结果是:" + iSum);
    Console.ReadLine();
}
程序分析:
1) 题目要求计算 1 到 100 之间的数字的累加结果,那么需要先定义一个变量 iNum 作为循环条件的判定,iNum 的初始值是 1,循环条件是 iNum 必须小于或等于 100。也就是说,只有到 iNum 小于或等于 100 时才进行累加操作,若 iNum 大于 100,则循环终止。

2) 每次循环只能计算其中一次相加的结果,想要计算 100 个数字的累加值,需要定义一个变量 iSum 来暂存每次累加的结果,并作为下一次累加操作的基数。

3) iNum 的初始值是 1,要计算 1 到 100 之间每个数的累加,需要 iNum 每次进入循环,进行累加后,iNum 的值增加 1,为下一次进入循环进行累加做准备,也同时作为循环结束的判断条件。

4) 当 iNum 大于 100 时,循环结束,执行后面的输出语句。程序运行结果如下:
1到100的累加结果是:5050

C# while循环的注意事项

如果将实例 1 代码中 while 语句后面的大括号去掉,将代码修改如下:
static void Main(string[] args)
{
    int iNum = 1;
    int iSum = 0;
    while (iNum <= 100)
        iSum += iNum;
        iNum++;
    Console.WriteLine("1到100的累加结果是:" + iSum);
    Console.ReadLine();
}
重新编译并运行程序,运行的时候会没有任何结果。分析造成这种情况的原因:当 while 语句循环体中的语句大于一条时,需要把循环体放在大括号 {} 中,如果 while 语句后面没有大括号,则 while 循环只会循环 while 语句后的第一条语句,对于上面的代码,则没有对循环变量 iNum 增加的过程,于是每次进入循环时,iNum 的值都是 1,造成死循环,永远不会执行后面的其他语句。

注意:
1) 循环体如果是多条语句,需要用大括号括起来,如果不用大括号,则循环体只包含 while 语句后的第一条语句。

2) 循环体内或表达式中必须有使循环结束的条件,例如,实例 1 中的循环条件是 iNum<=100,iNum 的初始值为 1,循环体中就用 iNum+++ 来使得 iNum 趋向于 100,使循环结束。

相关文章