C#循环
有时候程序需要,多次执行同一块代码,则需要使用到循环代码结构,但是要注意的就是一定要保证循环有明确的退出条件。
C#中提供了如下几种循环类型:
while循环
只要是给定的条件为真的时候,C#中的while循环语句会重复执行循环语句块
语法
while(condition)
{
//需要循环执行的语句块
statement(s);
}
当条件为真时执行循环,为假时则会继续执行紧接着循环的下一条语句
对于while循环来说先做判断是否为真再决定是否执行循环语句块,所以循环块中的语句可能一次不会执行。
选择“文件”-“新建”-“项目”,选择Visual C#中,控制台应用(.NET Framework)
输入项目名称及项目位置,点击确定,会生成对应的项目及解决方案
在Main方法中加入如下代码
int sum = 0;
int n = 1;
//while循环
Console.WriteLine("---------------while循环--------------");
while (n <= 10)
{
sum = sum + n;
n++;
}
n--;
Console.WriteLine("1+2+3+...+{0} = {1}",n,sum);
编译执行结果如下:
for循环
对于一个for循环是允许可以编写一个执行特定次数的循环结构
语法
for(init;condition;increment)
{
//循环语句块
statement(s);
}
init:它首先会被执行,并且它只会执行一次。允许声明并初始化任何循环控制变量,也可以不在这里写任何语句,但是之后的分号是不可少的。
condition:这是一个条件判断语句,如果为真,则会执行循环体,如果为假则会跳出循环体继续执行后面的语句
increment:在执行完循环体后,控制流程就会跳回到上面的increment语句,这个语句会用来更新循环控制变量
在Main方法中添加如下代码:
Console.WriteLine("----------------for循环--------------------");
sum = 0;
for (int i = 1; i <= 10; i++)
{
sum = sum + i;
}
Console.WriteLine("sum = {0}", sum);
编译运行后结果如下
foreach循环
C#支持foreach循环,使用foreach可以迭代数组或者一个集合对象
在Main方法中添加如下代码
Console.WriteLine("----------------foreach循环-------------------");
//定义一个数组
int[] arr = new int[] { 0,1,3,5,7,9,11,13,15};
//foreach循环
foreach (int element in arr)
{
//遍历数组中的每一个元素
Console.WriteLine(element);
}
int count = 0;
foreach (int element in arr)
{
count += 1;
Console.WriteLine("Element #{0}:{1}", count, element);
}
Console.WriteLine("在数组中总计元素数:{0}",count);
编译运行后结果如下:
do...while循环
do...while循环与for和while循环不一样,for和while都是在循环头部进行测试,但do...while是在循环尾部进行测试,do...while与while类似,但是注意它与while不同的是,循环体会在do中至少执行一次。
语法
do
{
statement(s);
}while(condition);
程序先执行循环体中的语句,然后测试condition条件,如果条件为真则再次跳到do循环体中进行执行循环体语句,否则跳过do...while语句继续执行后面的语句。
在Main方法中加入如下代码:
Console.WriteLine("----------------do...while循环--------------------");
sum = 0;
int a = 1;
do
{
sum = sum + a;
a = a + 1;
} while (a <= 10);
Console.WriteLine("a={0},sum={1}", a, sum);
编译并执行结果如下:
嵌套循环
C#中允许在一个循环内使用另一个循环
嵌套for循环语法
for(init;condition;increment)
{
for(init;condition;increment)
{
statement(s);
}
statements(s);
}
嵌套while循环语法
while(condition)
{
while(condition)
{
statement(s);
}
statement(s);
}
嵌套do...while循环
do
{
statement(s);
do
{
statement(s);
}while(condition);
}while(condition);
注意:除了以上的之外在任何一个循环内可以嵌套其它的循环,比如可以在一个for循环中嵌套一个while循环
循环控制语句
它会更改执行的正常序列,当执行离开一个范围时,所有在该范围中创建的对象都会被销毁掉。
C#中的控制语句
break语句
- 当break语句出现在一个循环内时,当前break语句所在循环会立即终止,而且程序会接着执行循环后的语句
- 它用来终switch语句中的一个case
注意:如果是使用的嵌套循环break语句如果在内循环中,则只退出内层的循环
break语句语法
break;
在Main方法中添加如下代码:
Console.WriteLine("-------------break语句---------------");
a = 10;
while (a < 20)
{
Console.WriteLine("a当前值是:{0}", a);
a++;
if (a == 15)
{
//退出循环
break;
}
}
编译执行的结果如下:
continue语句
它与break类似,不同的是,它不是退出整个循环而是对循环的本次执行退出,接下来会执行下一次的循环。
continue语句语法:
continue;
在Main方法中加入如下代码:
Console.WriteLine("-------------continue语句---------------");
a = 10;
while (a < 20)
{
Console.WriteLine("a当前值是:{0}", a);
a++;
if (a == 16)
{
//退出循环本次循环
continue;
}
}
编译执行结果如下:
无限循环
如果条件永远为真,则循环会变成一个无限循环。
比如如下的就为一个无限循环
int count = 1;
for(;;)
{
count = count + 1;
Console.WriteLine(“loop # {0}”,count);
}
当表达式不存在的时,它被假设为真。