您的位置:首页精文荟萃破解文章 → C#教程第四课:循环控制语句

C#教程第四课:循环控制语句

时间:2004/10/15 1:01:00来源:本站整理作者:蓝点我要评论(0)

 本节课将介绍如何使用C#控制语句中的循环语句,本课目的如下:
1.学会"while"循环的用法。

2.学会"do" 循环的用法。

3.学会"for" 循环的用法。

4.学会foreach循环的用法。

5.进一步了解"break"语句的用法。

6.如何使用"continue"语句。

在C#中,使用"goto"语句并不是一个最佳的建立循环的方法。本节课将介绍建立循环的常用方法。

第一个要介绍的语句是while循环语句





1.清单 4-1. While循环:While loop.cs





using System;
class Whileloop {
public static void Main() {
int myInt = 0;

while (myInt < 10) {
Console.Write("{0} ", myInt);
myInt++;
}
Console.WriteLine();
}
}





说明

1.清单 4-1演示了一个简单的while 循环。

以关键字"while"开始,后面是个布尔表达式。所有的控制语句都使用了布尔表达式。这就意味着表达式必须计算出true 或者false值。本例中,我们将检查myInt变量,看看它是否小于10。 因为myInt已经初始化为0,第一次计算时,该布尔表达式将返回true值。一旦布尔表达式的值为true,将执行该布尔表达式后面块中的语句。

2.在while块中,我们把数字和空格输出到控制台中,之后,对 myInt进行加1运算。一旦执行了while块中的语句之后,再次计算布尔表达式的值,这种情况将一直循环下去,直到该布尔表达式的值为false为止。 一旦布尔表达式的值为false, 程序将从while 块之后的第一条语句开始执行。在本例中,我们把数字0到9输出到控制台中,之后退出while块,再输出一个新行到控制台。

同 "while"循环类似的是"do" 循环语句。





2.清单 4-2. Do 循环: Do loop.cs





using System;
class Doloop {
public static void Main() {
string myChoice;
do {
// Print A Menu
Console.WriteLine("My Address Book\n");
Console.WriteLine("A - Add New Address");
Console.WriteLine("D - Delete Address");
Console.WriteLine("M - Modify Address");
Console.WriteLine("V - View Addresses");
Console.WriteLine("Q - Quit\n");
Console.WriteLine("Choice (A,D,M,V,or Q): ");

// Retrieve the user's choice
myChoice = Console.ReadLine();
// Make a decision based on the user's choice
switch(myChoice) {
case "A":
case "a":
Console.WriteLine("You wish to add an address.");
break;
case "D":
case "d":
Console.WriteLine("You wish to delete an address.");
break;
case "M":
case "m":
Console.WriteLine("You wish to modify an address.");
break;
case "V":
case "v":
Console.WriteLine("You wish to view the address list.");
break;
case "Q":
case "q":
Console.WriteLine("Bye.");
break;
default:
Console.WriteLine("{0} is not a valid choice", myChoice);
}

// Pause to allow the user to see the results
Console.Write("Press any key to continue...");
Console.ReadLine();
Console.WriteLine();
} while (myChoice != "Q" && myChoice != "q"); // Keep going until the user wants to quit
}
}





说明

1.清单 4-2 演示了"do"循环的例子。 "do" 循环的格式是: do { <语句> } while (<布尔表达式>);其中的语句可以是任何合法的C#语句,布尔表达式同以前的规定一样,其返回值要么为true,要么为false。

2.如果你打算输出清单4-2 中的信息或者菜单,之后再读取用户的输入,那么就使用"do" 格式的循环而不要使用"while" 格式的循环语句。因为在本例中,布尔表达式的值是在循环结束处进行计算的, "do" 循环可以保证:循环体中的语句至少执行一次。与此相对应的是:"while" 循环一开始时,计算布尔表达式的值,"while" 循环不能保证循环体中的语句能够至少执行一次。

3.让我们来回顾一下清单 4-2中的内容。

在Main()方法中,我们定义了变量 "myChoice"为字符串类型。之后,输出一些信息到控制台,即输出一个可让用户进行选择的菜单。我们必须要得到用户的输入,即Console.ReadLine()方法所返回的值,该值存放在myChoice变量中。我们必须先得到用户的输入,之后再处理。要完成这件事,一个有效的方法是就使用 "switch"语句。注意到:为了获得同样的功能,我们既匹配了小写字母,也匹配了大写字母。另外一点是:我们使用了 "default:" case,这是个良好的编程作风。





3.清单 4-3. For 循环: For loop.cs





using System;
class Forloop {
public static void Main() {
for (int i=0; i < 20; i++) {
if (i == 10)
break;
if (i % 2 == 0)
continue;
Console.Write("{0} ", i);
}
Console.WriteLine();
}
}





说明

1.清单 4-3 演示了"for" 循环的用法。

当你能够精确地知道循环的次数时, For 循环语句就派上了用场。本程序同清单 4-1中"while" 循环程序的运行结果一样。 "for" 循环中,括号中内容由三个由分号隔开的部分: "(<初始化表>; <布尔表达式>; )"组成

2.初始化表是个由逗号隔开的表达式,在"for" 循环的整个周期中,这些表达式仅仅计算一次。计算是在一开始进行的,并且在循环语句的执行之前进行。正如在清单 4-3所见,通常初始化表是先初始化一个作为计数器的整型变量。

3.一旦进行初始化后, "for" 循环就进入第二部分:布尔表达式的计算。 这里的布尔表达式可以写得很复杂,但是结果只能是true或者false。布尔表达式通常用来验证计数器变量的状态。

4.一旦布尔表达式的值为true时,就会执行"for" 循环大括号中的语句。通常情况下,这些语句从左大括号开始,不中断地一直执行到右大括号。但在清单4-3中,有几个例外,几个"if"语句改变了程序的流程。

第一个"if"语句检查"i"是否等于10,这里使用了"break"语句,可在此处跳出循环,转入 "for"块后面的第一条语句的执行。

第二条"if"语句使用了求余运算符,看看"i"是否能够被2整除,如果余数等于0,就执行 "continue"语句。控制将跳过循环体中余下的语句,转入下一轮新的循环。你需要在块中正确地组织好语句,一旦满足有关条件,就执行相应的语句。

5.一旦程序流程遇到continue语句,或者遇到块的结尾处的右括号, 就转入"for" 循环括号中的第三项:post-loop 动作表,该表由逗号隔开,在"for"块中的语句都执行完毕之后,就执行该动作表中的动作。 清单 4-3中的 post-loop 动作表中的动作很典型:计数器加1。一旦动作表执行完毕,流程就转到对布尔表达式值进行判别。循环将继续进行下去,直到布尔表达式的值为true。当布尔表达式的值为false,控制流程就转到 "for"块之后的第一条语句。





4.清单 4-4. The ForEach 循环: ForEachloop.cs





using System;
class ForEachloop {
public static void Main() {
string[] names = {"Cheryl", "Joe", "Matt", "Robert"};
foreach (string person in names) {
Console.WriteLine("{0} ", person);
}
}
}





说明

1."foreach" 循环列举出集合中所有的元素。

清单 4-4所使用的数组类型,就是这样的一个集合。(在"System.Collections"也可以由其他的数据类型作集合。). 在Main()方法中,我们所做的第一件事是:定义由四个字符串组成的数组names。

2."foreach"括号中的表达式是由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。

该循环的运行过程如下:每一次循环时,从集合中取出一个新的元素值,放到只读变量中去,括号中的整个表达式返回值为true, "foreach"块中的语句就能够执行。一旦集合中的元素都已经被访问到,整个表达式的值为false,控制流程就转入到 "foreach" 块后面的第一条可执行语句。

3.在清单 4-4的例子中,我们使用了字符串变量person用来存放names数组的每个元素,并且使用Console.WriteLine()方法输出person 变量的值。

小结
到现在为止,你已经了解了"while","do","for"和"foreach" 循环语句的用法。最后你也学习了如何设置有关条件,来改变循环体块中的语句的流程。

 


    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程