2.6 使用循环语句
程序开发中,经常需要对某个代码块执行循环,使编译器能够重复执行某个代码块来完成计算。循环能够减少代码量,避免重复输入相同的代码行,也能够提高应用程序的可读性。常见的循环语句有for、while、do、for each。
2.6.1 for循环语句
for循环一般用于已知重复执行次数的循环,是程序开发中常用的循环条件之一,当for循环表达式中的条件为true时,就会一直循环代码块。因为循环的次数是在执行循环语句之前计算的,所以for循环又称作预测式循环。当表达式中的条件为false时,for循环会结束循环并跳出。for循环语法格式如下所示。
for(初始化表达式,条件表达式,迭代表达式)
循环语句
for循环的优点就是for循环的条件都位于同一位置,同样,循环的条件可以使用复杂的布尔表达式表示。for循环表达式包含三个部分,即初始化表达式、条件表达式和迭代表达式。当for循环执行时,将按照以下顺序执行。
? 在for循环开始时,首先运行初始化表达式。
? 初始化表达式初始化后,则判断表达式条件。
? 若表达式条件成立,则执行循环语句。
? 循环语句执行完毕后,迭代表达式执行。
? 迭代表达式执行完毕后,再判断表达式条件并循环。
for语句循环示意图2-21所示。
图2-21 for循环示意图
开发人员能够通过编写for循环语句进行代码块的重复,示例代码如下所示。
技巧:for循环即可做增量操作也可以做减量操作,如可以写为for(int i=10;i>0;i--),说明for循环的结构非常灵活,同样for循环的条件,迭代表达式也不仅仅局限与此。
for循环还可以声明多个变量,在初始化表达式和迭代表达式中声明不只一个变量,示例代码如下所示。
2.6.2 while循环语句
while语句同for语句一样都可以执行循环,但是while的使用更加灵活,开发人员可以在代码块执行前判断条件,也可以在代码块执行一次后再行判断条件。
1.while语句的语法
while语句是除了if语句以外另一个常用语句,while语句的使用方法基本上和if语句相同,其区别就在于,if语句一般需要先知道循环次数,而while语句即便不知道循环次数也可以使用。while语句基本语法如下所示。
while(布尔值)
执行语句
while语句包括两个部分,布尔值和执行语句,while语句执行步骤一般如下所示。
? 判断布尔值。
? 若布尔值为true则执行语句,否则跳过。
while语句循环示意图如图2-22所示。
图2-22 while语句循环示意图
while语句示例代码如下所示。
上述代码,声明并初始化变量x等于100,当判断条件x!=1成立时,则执行x—操作,直到条件x!=1不成立时才跳过while循环。
2.continue关键字:继续执行语句
在while语句中,可以使用continue语句来执行下一次迭代而不执行完所有的执行语句,示例代码如下所示。
上述代码声明了x,y两个整型变量,并初始化值为10,当x不等于1时执行while循环。在while循环语句中,当执行到continue关键字时则跳出并继续执行while循环而不执行continue关键字后的语句,如y—语句。
2.break关键字:跳出循环语句
break关键字允许程序在while循环中跳出并终止循环,从而能够继续执行循环后的语句,示例代码如下所示。
上述代码判断x是否等于5。x如果等于5,则break语句会生效并跳出循环,继续执行while循环语句之后的代码。
2.6.3 do while循环语句
do while循环和while循环十分相似,区别在于do while循环会执行一次执行语句,然后再判断while中的条件。这种循环成为后测试循环,当程序需要执行一次语句再循环的时候,do while语句是非常实用的。do while语句语法格式如下所示。
do
{执行语句}
while(布尔值);
do while语句包含两个部分,执行语句和布尔值。与while循环语句不同的时,执行步骤首先执行一次执行语句,具体步骤如下所示。
? 执行一次执行语句。
? 判断布尔值。
? 若布尔值为true,则继续执行,否则跳出循环。
while语句循环示意图如图2-23所示。
图2-23 do while语句循环示意图
do while语句示例代码如下所示。
上述代码在运行时会执行一次大括号内的代码块,执行完毕后才会进行相应的条件判断。
2.6.4 foreach循环语句
for循环语句常用的另一种用法就是对数组进行操作,C#还提供了foreach循环语句,如果想重复集合或者数组中的所有条目,使用foreach是很好的解决方案。foreach语句语法格式如下
foreach (局部变量 in 集合)
执行语句;
? for each语句执行顺序如下所示。
? 集合中是否存在元素。
? 若存在,则用集合中的第一个元素初始化局部变量。
? 执行控制语句。
? 集合中是否还有剩余元素,若存在,则将剩余的第一个元素初始化局部变量。
? 若不存在,结束循环。
foreach循环示意图如图2-24所示。
图2-24 foreach语句循环示意图
foreach语句示例代码如下所示。
上述代码声明了数组str,并对str数组进行遍历循环。运行结果如图2-25所示。
图 2-25 foreach语句循环示例
注意:在使用foreach语句的时候,局部变量的数据类型应该与集合或数组的数据类型相同,否则编译器会报错。
2.6.1 for循环语句
for循环一般用于已知重复执行次数的循环,是程序开发中常用的循环条件之一,当for循环表达式中的条件为true时,就会一直循环代码块。因为循环的次数是在执行循环语句之前计算的,所以for循环又称作预测式循环。当表达式中的条件为false时,for循环会结束循环并跳出。for循环语法格式如下所示。
for(初始化表达式,条件表达式,迭代表达式)
循环语句
for循环的优点就是for循环的条件都位于同一位置,同样,循环的条件可以使用复杂的布尔表达式表示。for循环表达式包含三个部分,即初始化表达式、条件表达式和迭代表达式。当for循环执行时,将按照以下顺序执行。
? 在for循环开始时,首先运行初始化表达式。
? 初始化表达式初始化后,则判断表达式条件。
? 若表达式条件成立,则执行循环语句。
? 循环语句执行完毕后,迭代表达式执行。
? 迭代表达式执行完毕后,再判断表达式条件并循环。
for语句循环示意图2-21所示。
图2-21 for循环示意图
开发人员能够通过编写for循环语句进行代码块的重复,示例代码如下所示。
+展开
-C#
for (int i = 0; i < 100; i++) //循环100次
{
Console.WriteLine(i);//输出i变量的值
}
{
Console.WriteLine(i);//输出i变量的值
}
技巧:for循环即可做增量操作也可以做减量操作,如可以写为for(int i=10;i>0;i--),说明for循环的结构非常灵活,同样for循环的条件,迭代表达式也不仅仅局限与此。
for循环还可以声明多个变量,在初始化表达式和迭代表达式中声明不只一个变量,示例代码如下所示。
+展开
-C#
for (int i = 0, j = 0; (i < 100) && (j < 100); i++, j++)//多个条件循环
{
Console.WriteLine("i is" + i); //输出i变量的值
Console.WriteLine("j is" + j); //输出j变量的值
}
{
Console.WriteLine("i is" + i); //输出i变量的值
Console.WriteLine("j is" + j); //输出j变量的值
}
2.6.2 while循环语句
while语句同for语句一样都可以执行循环,但是while的使用更加灵活,开发人员可以在代码块执行前判断条件,也可以在代码块执行一次后再行判断条件。
1.while语句的语法
while语句是除了if语句以外另一个常用语句,while语句的使用方法基本上和if语句相同,其区别就在于,if语句一般需要先知道循环次数,而while语句即便不知道循环次数也可以使用。while语句基本语法如下所示。
while(布尔值)
执行语句
while语句包括两个部分,布尔值和执行语句,while语句执行步骤一般如下所示。
? 判断布尔值。
? 若布尔值为true则执行语句,否则跳过。
while语句循环示意图如图2-22所示。
图2-22 while语句循环示意图
while语句示例代码如下所示。
+展开
-C#
x = 100;//声明整型变量
while (x != 1)//判断x不等于1
{
x--;//x自减操作
}
while (x != 1)//判断x不等于1
{
x--;//x自减操作
}
上述代码,声明并初始化变量x等于100,当判断条件x!=1成立时,则执行x—操作,直到条件x!=1不成立时才跳过while循环。
2.continue关键字:继续执行语句
在while语句中,可以使用continue语句来执行下一次迭代而不执行完所有的执行语句,示例代码如下所示。
+展开
-C#
int x, y;//声明整型变量
x = 10;//初始化x
y = 10;//初始化y
while (x != 1)//如果x不等于1
{
x--;//x自减操作
Console.WriteLine(x);//输出x
continue;//返回循环
y--;//y自减操作(但不执行)
Console.WriteLine(y);//输出y(但不执行)
}
x = 10;//初始化x
y = 10;//初始化y
while (x != 1)//如果x不等于1
{
x--;//x自减操作
Console.WriteLine(x);//输出x
continue;//返回循环
y--;//y自减操作(但不执行)
Console.WriteLine(y);//输出y(但不执行)
}
上述代码声明了x,y两个整型变量,并初始化值为10,当x不等于1时执行while循环。在while循环语句中,当执行到continue关键字时则跳出并继续执行while循环而不执行continue关键字后的语句,如y—语句。
2.break关键字:跳出循环语句
break关键字允许程序在while循环中跳出并终止循环,从而能够继续执行循环后的语句,示例代码如下所示。
+展开
-C#
while (x != 1)//如果x不等于1
{
x--;//x自减操作
Console.WriteLine(x);//输出x
if (x == 5)//如果x等于5
{
break;//跳出循环
}
}
{
x--;//x自减操作
Console.WriteLine(x);//输出x
if (x == 5)//如果x等于5
{
break;//跳出循环
}
}
上述代码判断x是否等于5。x如果等于5,则break语句会生效并跳出循环,继续执行while循环语句之后的代码。
2.6.3 do while循环语句
do while循环和while循环十分相似,区别在于do while循环会执行一次执行语句,然后再判断while中的条件。这种循环成为后测试循环,当程序需要执行一次语句再循环的时候,do while语句是非常实用的。do while语句语法格式如下所示。
do
{执行语句}
while(布尔值);
do while语句包含两个部分,执行语句和布尔值。与while循环语句不同的时,执行步骤首先执行一次执行语句,具体步骤如下所示。
? 执行一次执行语句。
? 判断布尔值。
? 若布尔值为true,则继续执行,否则跳出循环。
while语句循环示意图如图2-23所示。
图2-23 do while语句循环示意图
do while语句示例代码如下所示。
+展开
-C#
int x=90;//声明整型变量
do//首先执行一次代码块
{
x ++;//x自增一次
Console.WriteLine(x);//输出x的值
}
while (x < 100);//判断x是不是小于100
do//首先执行一次代码块
{
x ++;//x自增一次
Console.WriteLine(x);//输出x的值
}
while (x < 100);//判断x是不是小于100
上述代码在运行时会执行一次大括号内的代码块,执行完毕后才会进行相应的条件判断。
2.6.4 foreach循环语句
for循环语句常用的另一种用法就是对数组进行操作,C#还提供了foreach循环语句,如果想重复集合或者数组中的所有条目,使用foreach是很好的解决方案。foreach语句语法格式如下
foreach (局部变量 in 集合)
执行语句;
? for each语句执行顺序如下所示。
? 集合中是否存在元素。
? 若存在,则用集合中的第一个元素初始化局部变量。
? 执行控制语句。
? 集合中是否还有剩余元素,若存在,则将剩余的第一个元素初始化局部变量。
? 若不存在,结束循环。
foreach循环示意图如图2-24所示。
图2-24 foreach语句循环示意图
foreach语句示例代码如下所示。
+展开
-C#
string[] str = { "hello", "world", "nice", "to", "meet", "you" };//定义数组变量
foreach (string s in str)//如果存在元素则执行循环
{
Console.WriteLine(s);//输出元素
}
foreach (string s in str)//如果存在元素则执行循环
{
Console.WriteLine(s);//输出元素
}
上述代码声明了数组str,并对str数组进行遍历循环。运行结果如图2-25所示。
图 2-25 foreach语句循环示例
注意:在使用foreach语句的时候,局部变量的数据类型应该与集合或数组的数据类型相同,否则编译器会报错。
加支付宝好友偷能量挖...