第3章 流程控制_第1页
第3章 流程控制_第2页
第3章 流程控制_第3页
第3章 流程控制_第4页
第3章 流程控制_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章流程控制

C#是完全面向对象的程序设计语言,采用了事件驱动机制,但在程序设计时,仍然涉及到流程控制。结构化程序设计方法把程序的流程分为3种,即顺序结构、选择结构和循环结构。这3种结构在任何程序设计语言中的应用都非常广泛而且十分相似。重点内容:顺序结构选择结构循环结构循环中断语句一、顺序结构程序设计1.赋值语句

顺序结构是程序设计中最简单的基本结构,语句之间的执行顺序是按照其书写次序一条接一条地顺序执行,是其他结构的基础。

C#语言中的赋值语句是由赋值表达式加上一个语句结束符号“;”构成的。由于C#语言提供了丰富的赋值表达式形式,因此赋值语句也有多种形式。例如下面列出的三种形式:

1.简单的赋值语句,如:inta=100; 2.复合赋值语句,如:a+=200; 3.连续赋值语句,如:a=b=c=d=5;一、顺序结构程序设计2.控制台输入与输出 任何一个应用程序在进行数据处理的过程中,都离不开数据的输入与输出。控制台应用程序的输入、输出主要通过Console类中的Write()、WriteLine()、Read()、ReadLine()等静态方法来实现。1.输入方法

Read()与ReadLine()方法2.输出方法

Write()和WriteLine()方法一、顺序结构程序设计3.编写顺序结构程序 顺序结构程序通常包括输入数据、数据处理和输出结果3部分。想要让计算机为用户处理数据,用户必须先输入要处理的数据。当要处理的数据输入到计算机后,根据用户需要计算机进行相应的运算处理,最后把处理结果输出出来。在中学数学中经常见到方程:ax²+bx+c=0,图3.1中的代码实现使用C#求出方程的根。图3.1求方程根的代码图二、选择结构程序设计 一般来说,程序在运行的过程中,要求能够改变语句的执行顺序以实现某种特定的功能。其中,选择结构程序的设计就是一种能够满足上述要求的方法。 在C#中,提供两种选择语句实现流程的改变,即if语句和switch语句,if语句用于判断特定的条件能否满足,一般用于单分支选择,也可以嵌套实现多分支选择。switch语句,多用于多分支选择。二、选择结构程序设计1.单分支选择结构--if语句 当程序中的一个问题出现两个或多个不同的处理时,要根据具体情况进行解决,需要使用选择语句控制程序的流程实现。选择语句要根据布尔条件表达式的值选择执行的分支语句,进而实现流程控制。if语句是程序设计中基本的选择语句,其功能是根据条件表达式的值选择执行后面的内嵌语句序列。一般用于简单选择,即选择项中有一个或两个分支。例如判断变量的值是否大于5:if(a>5) {Console.WriteLine("输入的数大于5!");}二、选择结构程序设计2.嵌套if语句

if语句可以嵌套使用,如果程序的逻辑判断关系比较复杂,通常会采用条件判断嵌套语句。例如下面的嵌套语句。if(表达式1){if(表达式2){

语句1;}else{语句2;}}二、选择结构程序设计3.多分支选择结构--switch语句 嵌套的if语句可以实现多分支选择,但是如果分支过多,程序的结构会很混乱、不易读而且不易跟踪。C#语言提供了一个专门解决多分支选择结果的switch语句。该语句格式如下所示。switch(控制表达式){case常量表达式1:

内嵌语句1;break; default:

内嵌语句2;break;}

三、循环结构程序设计1.for循环语句 循环是实现程序特定功能的一种机制,在程序设计中起着非常重要的作用。使用循环结构,可以实现一个程序模块的重复执行,进而使一些复杂的问题简单化。

for循环语句是C#中使用最为频繁的循环语句。它用于测试表达式是否满足特定条件。如果满足,则进入循环,否则退出循环。在事先知道循环次数的情况下,使用for语句是比较方便。for循环的语法格式如下所示。for(初始化表达式;循环条件表达式;循环控制表达式){

循环语句;}三、循环结构程序设计2.foreach循环语句

foreach语句是在C#中新引入的。C和C++中没有这个语句。foreach语句多用在解决数组的问题上,与for语句的使用有相似之处。foreach循环应用范围没有for循环广泛,但相对来说比较简单。staticvoidMain(string[]args) //主方法,程序入口{int[]array=newint[]{0,1,2,3,4};//声明一个整型数组

foreach(intiinarray) //使用foreach循环

{Console.WriteLine(i); //输出数组中的数

}Console.ReadLine(); //等待用户输入}三、循环结构程序设计3.while循环语句 与for语句一样,while语句也是实现循环功能的语句。一般while语句用来实现不知道循环次数的情况,是典型的当型循环结构。即当表达式为真时,才执行循环体。例如下面使用while语句求一个数列的和。while(n!=0) //当n!=0为真时,执行循环体{ sum+=n; //倒序相加

n--; //变量n自减}三、循环结构程序设计4.do…while循环语句

dowhile语句也是用于循环的语句,可以实现直到型循环结构。与while语句不同的是,dowhile在执行时首先要无条件地执行内嵌语句一次,然后再判断表达式是否为真,如果表达式为真,再次执行循环体,否则终止循环。dowhile语句的语法格式如下所示。do{

内嵌语句;}while(布尔表达式);三、循环结构程序设计5.循环嵌套

所谓循环嵌套,是指一个循环体内包含另一个循环。前面介绍的3种循环都可以互相嵌套,这就是多重循环。但要注意循环层次要清楚,不能交叉。九九乘法表是一个典型的循环结构程序设计的示例。

inti,j; //定义两个整型变量

Console.WriteLine("循环嵌套示例——九九乘法表");for(i=1;i<10;i++) //外层for循环,控制行数

{for(j=1;j<=i;j++)//内层for循环,控制列数

{ //输出乘法表

Console.Write("{0}*{1}={2}\t",i,j,i*j); }Console.WriteLine(); //换行

}四、循环中断1.break终止循环语句所谓循环中断,就是指在循环结束前采用某个语句跳出循环。break语句终止循环,循环体内其余的代码将不会执行,用于循环结构中,也可用于switch语句中。其作用是结束所在的结构语句,即退出最近的封闭switch、while、do、for或foreach语句等。for(inti=1;i<=100;i++) //使用for循环{if(i==10) //判断条件

{break; //满足条件时退出循环体

}Console.WriteLine(i); //输出变量i的值}四、循环中断2.return返回指定值语句

return中断当前循环的同时,也中断当前方法的执行,一般用于返回运算结果。也可以在循环中使用该语句,用于终止循环。不过return语句更多的是和方法(本书将在第4章介绍方法)一起使用,用于将指定的数据返回到方法调用处。方法的一般格式如下所示。

return表达式;

四、循环中断3.continue停止当前循环语句

continue语句用来结束本次循环,但并不跳出循环,而是继续进行下一次是否执行循环体的判定。continue语句只用在循环中,常与if语句配合使用。for(inti=1;i<=20;i++) //使用for循环{if(i%2==0) //判断条件

{continue; //结束本次循环,不退出循环体

}Console.WriteLine(i); //输出i}

四、循环中断4.goto跳转语句

goto语句是无条件跳转语句,跳转到由其后面标号注释的语句。在程序设计中,不提倡使用goto语句,因为完全可以不必使用就可以完成所有工作。适度地使用goto语句会使程序变得简洁。不过,若滥用会导致程序的维护和阅读难度大大增加。goto语句的作用是跳转到指定的语句,然后继续往下执行。使用goto语句时首先在想要跳往的语句前面加个标签和冒号即可。

toHere:Console.WriteLine(“跳转到此处!”);

然后,当想跳转到该条语句时,使用“goto标签名;”即可。代码如下所示。

gototoHere; 五、实训3.1——常用的排序算法1.使用冒泡法排序分析 冒泡法是一种典型的排列数据的算法,可以把一个数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论