您的位置:首页 > 编程语言 > C#

C#整理4——循环语句

2015-03-05 14:41 92 查看
一、循环语句

定义:可以反复执行某段代码,直到不满足循环条件为止。

循环的四要素:初始条件、循环条件、状态改变、循环体。

1.初始条件:循环最开始的状态。

2.循环条件:在什么条件下进行循环,不满足此条件,则循环终止。

3.状态改变:改变循环变量值,最终不满足循环条件,从而停止循环。

4.循环体:要反复执行的部分。

二、for循环(重点)

1. 语法:

for(表达式1;表达式2;表达式3)

{

执行语句;(循环体)

}

2. 执行过程:

1. 计算表达式1转向2

2. 计算表达式2(循环条件)若为true转向3,false转向5

3. 执行循环体转向4

4. 执行表达式3转向2

5. 循环结束

一般情况下:

表达式1:用于定义循环变量和对循环变量赋初值

表达式2:循环条件

表达式3:用于改变循环条件的值

注意:一般情况下for循环用于已知次数的循环中。

foreach循环

a. 语法:

foreach(数据类型 变量名 in 数组/集合)

{
循环体;

}

其中in关键字前面就是定义一个迭代变量,in后面就是实现了IEnumerable 或者 IEnumerable<T> 接口的对象

b. foreach遍历数组的简单原理:“in数组名”会将数组中的元素从第0个开始到最后一个遍历出来赋给迭代变量,所以迭代变量直接就是数组元素的值。

注意:迭代变量的数据类型必须要与数组中元素类型一致。

c. 执行过程:每次遍历的时候将当前遍历出来的数组元素拿出来赋给迭代变量,然后再执行循环体。

d. for循环和foreach循环的区别与联系:

1. 相同点:

都可以遍历数组中的元素。

2. 不同点:

1> for循环遍历出来的是数组元素的下标,foreach遍历出来的直接就数组元素。

2> for循环可以从指定下标开始遍历,而foreach只能从第0个开始直到最后一个结束。

3> 在for循环中可以更改遍历出来元素的值,而在foreach中不能更改遍历出来的值(迭代变量的值)。

4> for循环中可以得到当前遍历出来的值以外的值(即上一个值和下一个值,因为for是通过遍历索引来取值的)而foreach只能得到当前遍历出来的元素值。

因为foreach是直接遍历数组中元素的值。

e. 什么情况下用foreach来遍历数组中的元素?

1. 从头开始遍历直到最后一个。

2. 只取值不改值

while循环

1.语法:

while(循环条件)

{

循环体;

}

1. 执行过程:

1. 先判断循环条件,如果为true。则转向2,如果为false转向语句3

2. 执行循环体,执行完了转向1。

3. 跳出循环循环结束。

注意:在while循环中一定要有那么一句话来改变循环变量的值,使循环变量终有那么一个时候为false。(不然死循环)

do-while()循环

1. 语法:

do

{

//循环体

}while(循环条件);注意:这里一定要有分号。

2.执行过程:

1.执行循环体,执行完循环体转向2

2.判断条件是否成立,如果条件为true则转向1 为false则转向3.

3.跳出循环,循环结束。

3.while与do-while的区别:

如果条件一开始就为False,对于while循环,循环体一次都不会执行。对于do-while循环体执行一次。即:while先判断后执行,do-while先执行一次再判断。

[b]三、执行过程:[/b]

1.执行初始条件

2.执行循环条件

3.循环体

4.状态改变

5继续第2步。

[b]四、for 循环的应用:迭代法,穷举法。[/b]

迭代法应用:

1.100以内所有数的和。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
class Class1
{
//123()45()67()8()9=100;要求在()里面填写+或-使等式成立。
static void Main(string[] args)
{
for (int a = -1; a <= 1;a=a+2 )//-1代表减号,1代表加号
{
for (int b = -1; b <= 1;b=b+2 )
{
for (int c = -1; c <= 1;c=c+2 )
{
for (int d = -1; d <= 1;d=d+2 )
{
if (123+a*45+67*b+8*c+9*d==100)
{
Console.WriteLine("a="+a+";b="+b+";c="+c+";d="+d);
}
}
}
}
}
}
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: