《CSharp程序流程控制.ppt》由会员分享,可在线阅读,更多相关《CSharp程序流程控制.ppt(41页珍藏版)》请在三一办公上搜索。
1、Visual C#程序设计基础XXXXXX大学计算机系基础教研室,第4章 C#程序流程控制,4.1 顺序结构4.2 选择结构4.3 循环结构小结和习题,4.1 顺序结构,赋值语句1.赋值语句由一个赋值运算符构成的赋值语句。赋值语句的格式为:变量=表达式;2 复合赋值语句与连续赋值语句(1)复合赋值语句(2)连续赋值语句,4.1 顺序结构,4.1.2 输入语句通过计算机的外设把数据送到计算机内存的过程称为输入。C#语言的输入语句常用的有两种形式:Console.Read();Console.ReadLine();输入可以是整型或字符串等,但布尔型不可以直接读入。例如:string strInpu
2、t=Console.ReadLine();Read语句和ReadLine语句不同之处在于输入数据到各变量之后,ReadLine自动换行,从下一行开始再输入数据。,4.1 顺序结构,4.1.3 输出语句输出是将内存中的数据送到外设的过程。C#语言的输出语句有两种形式:Console.Write(输出项);Console.WriteLine(输出项);其中可以是常量、变量、表达式或字符串。例如:Console.Write(abcd);/输出”abcd”Console.WriteLine(abcd);/输出”abcd”并换行Console.WriteLine(0;1;2,10,20,30);/输出“
3、10;20;30”并换行Write和WriteLine的区别:Write语句是输出项输出后,不换行,光标停留在最后一项后;WriteLine语句按项输出后,自动换行,光标则停留在下一行的开始位置。,4.1 顺序结构,4.1.4 复合语句复合语句是由若干语句组成的序列,语句之间用分号“;”隔开,并且以 括起来,作为一条语句。复合语句的一般形式:语句1;语句2;语句n;,4.1 顺序结构,4.1.5 应用实例【例4-1】编写一个控制台应用程序,输入圆的半径值,求圆的周长和面积,结果如图4-1所示。,using System;namespace P4_1 class Program static v
4、oid Main(string args)const double PI=3.141;double R,L,S;Console.Write(请输入圆的半径值:);R=double.Parse(Console.ReadLine();L=2*PI*R;S=PI*R*R;Console.WriteLine(圆的周长为:0,L);Console.WriteLine(圆的面积为:0,S);Console.ReadLine();,4.1 顺序结构,4.1.5 应用实例(1)Parse方法 Parse方法可以将特定格式的字符串转换为数值。使用格式为:数值类型名称.Parse(字符串型表达式)例如:int x
5、=int.Parse(123);(2)ToString方法 ToString方法可将其他数据类型的变量值转换为字符串类型。使用格式为:变量名称.ToString()例如:int x=123;string s=x.ToString();,4.1 顺序结构,4.1.5 应用实例【例4-2】使用标签与文本框实现输入与输出。输入两个数,并实现两数的算术运算:和、差、积、商,结果如图所示。,4.2 选择结构,if条件语句1.单分支if语句单分支if语句的格式为:if(布尔条件表达式)内嵌语句序列1;说明:若布尔表达式的为真时,程序执行内嵌语句序列。如果内嵌语句序列中为多个执行语句,则要使用花括号()组合
6、为一个语句块。,4.2 选择结构,if条件语句2.双分支if语句双分支if语句的格式为:if(布尔条件表达式)内嵌语句序列1;else 内嵌语句序列2;说明:若布尔表达式的值为真时,程序执行内嵌语句序列1,否则执行内嵌语句序列2。if.else语句中,内嵌语句序列1和内嵌语句序列2可以是简单语句,也可以是复合语句。如果内嵌语句序列中为多个执行语句,则要使用花括号()组合为一个语句块。,4.2 选择结构,if条件语句3.多分支if语句多分支if语句的格式为:if(表达式1)内嵌语句序列1;else if(表达式2)内嵌语句序列2;else if(表达式3)else if(表达式4)else 内嵌
7、语句序列n;,4.2 选择结构,if条件语句3.多分支if语句说明:(1)首先判断表达式1,如果其值为true,则执行if语句块中的语句,然后结束if语句。(2)如果表达式1的值为false,则判断表达式2,如果其值为true,则执行else if语句块中的语句,然后结束if语句。(3)如果表达式2的值为false,再继续往下判断其他表达式的值。(4)如果所有表达式的值都为false,则执行else语句块中的语句,然后结束if语句。,4.2 选择结构,if条件语句3.多分支if语句说明:对于多层if嵌套结构,要特别注意if与else的配对关系,一个else必须与一个if配合,按照就近原则进行匹
8、配。,4.2 选择结构,if条件语句【例4-3】某商店为了吸引顾客,采取以下优惠活动:所购商品在1000元以下的,打9折优惠;所购商品多于1000元的,打8折优惠。试编程实现该优惠功能。分析:该问题属于数学分段函数问题,当所购商品总额1000时,打折后的商品总额为所购商品总额*0.8。,4.2 选择结构,if条件语句【例4-4】将百分制成绩转换为五分制成绩。转换标准如下:90分以上为“优秀”,80分以上为“良”,70分以上为“中”,60分以上为“及格”,60分以下为“不及格”。,4.2 选择结构,switch语句switch语句是一个控制语句,它通过将控制传递给其体内的一个case语句来处理多
9、个选择和枚举。声明case语句的语法如下:switch(表达式)case 常数表达式:语句块跳转语句(如break、return、goto)./其他的case子句defalut:语句块,4.2 选择结构,switch语句【例4-5】设计一个判断属相的程序,输入0 11的整数,判断其对应的十二生肖。,4.2 选择结构,4.2.3 应用实例【例4-6】设计一个学生成绩输入程序。要求两个文本框不能为空且成绩应在0 100之间,单选按钮必须有一个被选择。用户输入了合法数据并单击”确定”按钮后的程序运行界面如图所示。单击”清除”按钮可清除上次输入的所有数据,并恢复两个单选按钮都处于未选中状态。,4.2
10、选择结构,4.2.3 应用实例【例4-7】某航空公司规定在旅游的旺季79月份,如果订票数超过20张,票价优惠15%,20张以下优惠5%;在旅游的淡季15月份、10月份、11月份,如果订票数超过20张,票价优惠30%,20张以下优惠20%;其他情况一律优惠10%。试设计程序,根据月份和订票张数决定票价的优惠率,程序运行界面如图,4.3 循环结构,C#中的循环结构有几种:for循环while循环dowhile循环foreach循环 支持用 break 来退出循环,用 continue 来跳过本次循环进入下一次循环。foreach循环用于处理数组,下一章介绍。,4.3 循环结构,for循环语句1.f
11、or语句的语法格式for(表达式1;表达式2;表达式3)循环语句序列;功能:表达式1用于参与循环条件变量的初始化,该表达式仅执行一次;表达式2为条件判断表达式,即每次循环开始之前,判断该表达式是否成立,如果成立,进入下一次循环,否则,循环结束;表达式3用于参与循环条件变量的运算,一般为递增或递减的循环计数器。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,for循环语句说明:表达式1、表达式2、表达式3是可选的,但应该注意避免死循环的发生。如表
12、达式2省略,并且不采用转移语句,会导致死循环的发生。可以在循环体中的任何位置放置break语句来强制终止for循环(随时跳出for循环)。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,for循环语句2.for循环语句的使用【例4-8】使用for语句计算1+2+3+100。class Program static void Main(string args)int sum;sum=0;for(int k=1;k=100;k=k+1)sum=su
13、m+k;Console.WriteLine(从1加到100值为+sum.ToString();,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.2 whlie、dowhile语句1.while语句(1)while循环语句的语法格式:while(条件表达式)语句序列;while循环的执行过程:首先计算条件表达式的值,如果为真(True),则执行后面的循环体,执行完后,再开始一个新的循环;如果为假(False),则终止循环,执行循环体后面的语
14、句。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.2 whlie、dowhile语句1.while语句对while循环的有关说明如下:条件表达式是一个具有boolean值的条件表达式,为循环的条件。作为循环体的语句序列可以是简单语句、复合语句和其他结构语句。可以在循环体中的任何位置放置break语句来强制终止while循环(随时跳出while循环)。可以在循环体中的任何位置放置continue语句,在整个循环体没有执行完就重新判断条件
15、,以决定是否开始新的循环。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.2 whlie、dowhile语句1.while语句(2)while循环语句的使用在while循环语句中,while是关键字,控制while语句的条件表达式包含在括号内,括号后面的是当条件表达式值为真时应执行的循环体。循环体中应包含对条件表达式的修改,例如:int i=0;/定义一个int类型的变量while(i 5)/判断while条件Console.Write
16、Line(i);/输出结果i+;/i 加1程序段中就包含了对循环控制变量i的修改(i+).,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.2 whlie、dowhile语句2.do while语句(1)do while的语法格式 do 语句序列;while(布尔条件表达式);功能:当程序执行到do区域的时候,就进入了循环体,第一次进入这个循环体没有进行任何判断,就可以执行这个循环体的所有语句,然后进入while条件判断,如果条件符合,再
17、次进入do区域,否则退出循环。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.2 whlie、dowhile语句2.do while语句(2)do while的使用do语句后面是一个循环体,后面紧跟着一个while关键字。控制循环执行次数的条件表达式位于while关键字的后面。条件表达式在循环体执行后再判断,循环体执行一次(至少一次)或若干次。例如:int i=3;/定义一个整型变量do Console.WriteLine(i);/输出
18、结果 i+;/i加1 while(i 3);/判断while条件程序段中定义了整型变量i,它的值为3。当程序执行到do区域的时候,就进入了循环体,第一次进入这个循环体没有进行任何判断,就可以执行这个循环体的所有语句,然后进入while条件判断,如果条件符合,再次进入do区域,否则退出循环。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.2 whlie、dowhile语句2.do while语句【例4-9】使用dowhile语句实现1+2
19、+3+100。static void Main(string args)int sum;sum=0;int k=1;do sum=sum+k;k=k+1;while(k=100);Console.WriteLine(从1加到100值为+sum.ToString();,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.3 循环嵌套一个循环(称为”外循环”)的循环体内包含另一个循环(称为”内循环”),则称为循环的嵌套。内循环中还以包含循环,形成
20、多层循环(循环嵌套的层数理论上无限制)。三种循环(while循环、dowhile循环、for循环)可以互相嵌套。使用跳转语句,可以使程序执行跳转到程序中其它部分。C#中提供四种转移语句:goto语句、break语句、continue语句、return语句。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.3 循环嵌套C#中提供四种转移语句:goto语句。可以将程序控制直接转移给标签制定的语句。break语句。只能在循环体内和switch语
21、句体内使用break语句,使运行的程序立刻退出它所在的最内层循环或者退出一个switch语句。continue语句。仅从当前的循环迭代中退出,然后执行下一次迭代循环。只能用在while语句、do-while语句、for语句、或者foreach语句的循环体内。return语句。用于指定函数返回的值。return语句只能出现在函数体内。【例4-10】使用计数器循环语句(for)了解continue语句的使用,要求输出大于5的数。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World
22、!”);,4.3 循环结构,4.3.4 应用实例【例4-11】计算n!,假设n=10。分析:该例实现阶乘的运算。可以使用循环语句,通过改变乘数的值来实现连乘。static void Main(string args)int sum,k;sum=1;for(k=1;k=10;k+)sum=sum*k;Console.WriteLine(sum.ToString();,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.4 应用实例【例4-12】
23、编写一个控制台应用程序,求300以内的素数,程序的运行结果如图所示。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.4 应用实例static private Boolean IsSuShu(int x)Boolean Yes=true;for(int i=2;i Math.Sqrt(x);i+)if(x%i)=0)Yes=false;return Yes;,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语
24、句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,static void Main(string args)for(int i=2;i 300;i+)if(IsSuShu(i)=true)Console.Write(i.ToString();Console.Write();Console.ReadKey();,4.3 循环结构,4.3.4 应用实例【例4-13】设有一张厚为X mm,面积足够大的纸,将它不断地对折。试问对折多少次后,其厚度可达珠穆朗玛峰的高度(8844.43 m)。设对折后纸的厚度为h mm,计数器为n。在没有对折时,纸厚为X
25、mm,每对折一次,其厚度是上一次的2倍,在未到达8844.43 m时,重复对折。在程序中,纸的厚度就是对折后纸的厚度,所以用一个变量h。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.4 应用实例static void Main(string args)int n=0;float h;Console.Write(请输入纸的厚度:n);h=float.Parse(Console.ReadLine();while(h 8844430)n=n
26、+1;h=2*h;Console.WriteLine(n.ToString();,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,4.3 循环结构,4.3.4 应用实例【例4-14】编程实现九九乘法表。分析:使用两重循环,利用循环变量作为被乘数和乘数,就可方便的解决问题。外层循环变量i的取值从19,内层 循环变量k的取值也是19。,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.Writ
27、eLine(“Hello World!”);,4.3 循环结构,4.3.4 应用实例static void Main(string args)string s=;int sum;for(int i=1;i 10;i=i+1)s=;for(int k=1;k=i;k=k+1)sum=k*i;s=s+k.ToString()+i.ToString()+=+sum.ToString()+;Console.WriteLine(s);,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如:Console.WriteLine(“Hello World!”);,本章小结,C#程序的流程控制是通过顺序结构、选择结构和循环结构以及转移语句实现的。if语句switch语句while语句do-while语句,习 题,1.选择题(P.)(1)(9)2.程序阅读题(1)(2)3.编程题(1)(5),
链接地址:https://www.31ppt.com/p-6503472.html