循环结构可以实现一个程序模块的重复执行,它对于我们简化程序,更好地组织算法有着重要的意义。C#为我们提供了若干种循环语句,分别适用于不同的情形,下面依次介绍。
1.While循环
While循环语句可以有条件地将内嵌语句执行0遍或者若干遍,基本语法为:
while(boolean expression)
{
embeded-statement;
}
While循环语句执行时,先判断while后面括号内的语句的值,当为False时,不执行大括号内的嵌入程序段,若为True 时,进入循环,执行循环内程序段一遍后,再次判断条件是否满足,若满足就一直执行下去,一直到不满足为止,跳出循环,继续后面的语句。
这是根据上面的while循环语法画的控制流程图:
2.Do循环
程序中使用循环时,第一次不检查条件是否满足,直接进入循环,第二次以后才检查条件是否满足,条件为True时,才能进入循环。这时候,我们便需要使用Do循环。
Do循环的基本语法格式为:
do
{
embeded-statement;
}
while(boolean expression);
这是根据上面的DO循环语法画的控制流程图:
3.For循环
在程序的设计过程中,若希望从某个值开始,每执行指定的程序段一次,便将该数值增加(减少)一个单位,如果结果始终比终值小(大),便继续执行该程序段,一直到不满足终值才离开该程序段。这时,我们就可以使用For循环语句。
For循环语句的基本语法为:
for(initializer;condition;iterator)
{
statement;
}
其中Initializer,Condition,Iterator这3个项都是可选项。Initializer为循环控制变量作初始化,循环控制变量可以有一个或多个(用逗号隔开);Condition为循环控制条件,也可以有一个或者多个语句;Iterator为按规律改变循环控制变量的值。
这是根据上面的For循环语法画的控制流程图
例:使用For循环语句,写一个冒泡排序法(从小到大排列)。
程序代码 :
using System;
using System.Collections.Generic;
using System.Text;
namespace forExampleMP
{
class Program
{
static void Main(string[] args)
{
int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 };
// 取长度最长的词组 -- 冒泡法
for (int j = 1; j < myArray.Length; j++)
{
for (int i = 0; i < myArray.Length - j; i++)
{
// 如果 myArray[i] > myArray[i+1] ,则 myArray[i] 上浮一位
if (myArray[i] > myArray[i + 1])
{
int temp = myArray[i];
myArray[i] = myArray[i + 1];
myArray[i + 1] = temp;
}
}
}
Console.WriteLine("冒泡法排序后结果是:");
for (int k = 0; k < myArray.Length; k++)
{
Console.Write(myArray[k].ToString()+",");
}
Console.ReadLine();
}
}
}
运行结果:
4.Foreach语句
Foreach语句是在C#中新引入的,C和C++中没有这个语句。它表示收集一个集合中的各元素,并针对各个元素执行内嵌语句。
Foreach语句的基本语法格式为:
foreach(type identifier in expression)
{
statement;
}
关于Foreach语句的几点说明:
首先,变量用来逐一存放数组元素内容,故该变量声明的类型要和数组的类型一致,且必须声明后才能使用;其次,数组内元素的个数决定循环内程序段重复执行的次数;最后,每次进入循环,会依次将数组元素内容指定给变量,当所有元素都读完后,系统就会离开Foreach循环。
Foreach语句的一个例子:
使用Foreach循环语句输出一个数组的所有元素值。
using System;
using System.Collections.Generic;
using System.Text;
namespace foreachExample
{
class Program
{
static void Main(string[] args)
{
int index = 1;
string[] myArray = new string[6] { "Pirlo", "Ronaldo", "Beckham", "Kaka", "Owen", "Henry" };
foreach (string arr in myArray)
{
Console.WriteLine("第{0}个球员的名字是:{1}",index++,arr);
}
Console.ReadLine();
}
}
}
运行结果:
5.死循环
可以通过编写错误代码或错误的设计,定义永远不终止的循环,即所谓的无限循环。下面的代码就是一个死循环的例子。
while (true)
{
//statement;
}
当然,死循环代码也是有用的,比如说,我们可以使用跳转语句(Break等)退出这样的循环。
以上是C#中的循环语句,接下来我会写C#中的跳转语句,敬请期待。