收藏 分销(赏)

第03章控制语句.ppt

上传人:xrp****65 文档编号:13341647 上传时间:2026-03-04 格式:PPT 页数:43 大小:288KB 下载积分:10 金币
下载 相关 举报
第03章控制语句.ppt_第1页
第1页 / 共43页
第03章控制语句.ppt_第2页
第2页 / 共43页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 控制语句,3.1,语句简介,3.2,选择语句,3.3,循环语句,3.4,跳转语句,3.5,习题,3.1,语句简介,C#,语言的语句必须以,“,;,”,为结束符。,int,i;/,声明语句,;/,空语句,i=10;/,表达式语句(赋值语句),C#,语言中不是所有的表达式加,“,;,”,都能组成语句,例:,10+5;/,错误,不是语句,一般来说,只有赋值表达式、自增表达式、自减表达式、方法调用表达式和对象创建表达式加上分号才能组成表达式语句。,3.1,语句简介(续),语句块,是指由,0,条或多条语句用括号,“,”,括起来组成的复合语句。,C#,语言中,可以把它看成一条语句。,上述语句在程序中是如何执行的?,都按出现的前后顺序执行,。,C#,中可以控制程序的执行流程的语句有?,选择语句、循环语句、跳转语句,3.2,选择语句,3.2.1,if语句,3.2.2,switch语句,3.2.1 if,语句,if,语句根据布尔表达式的值来选择要执行的语句,形式,1,:,if(,布尔表达式,),语句,1,如果布尔表达式的值为,true,,执行语句,1,;否则执行后面的语句,例:,if(i%2=0),i=i/2;,3.2.1 if,语句(续),形式,2,:,if(,布尔表达式,),语句,1,else,语句,2,如果布尔表达式的值为,true,,执行语句,1,;否则执行语句,2,例:,if(f,-,int(f,)=0.5),f=(,int)f,+1;,else,f=(,int)f,;,3.2.1 if,语句(续),形式,3,:,if,语句的嵌套,if(,布尔表达式,1),语句1,else if(布尔表达式2),语句2,else if(布尔表达式3),语句3,else,语句n,3.2.1 if,语句(续),形式,3,:执行流程,从上往下地计算相应的布尔表达式,如果结果为真则执行相应语句,跳过,if_else,if,框架的剩余部分,直接执行,if_else,if,框架的下一条语句;,如果结果为假,则继续往下计算相应的布尔表达式,直到所有的条件表达式都不成立,则执行这个语句的最后部分,else,所对应的语句,或者如果没有,else,语句就什么也不做。,例,3-1 if,语句,源代码,运 行,/,MyIfElse.cs,using System;,class,MyIfElse,static void Main(),Console.Write,(,你的成绩是多少,?(0100)?);,string,str,=,Console.ReadLine,();,int,grade=,Int32.Parse(str);/,此语句的作用?,if(grade,100|grade=90),Console.WriteLine,(,你的成绩是优!,);,else,if(grade,=80),Console.WriteLine,(,你的成绩是良!,);,else,if(grade,=60),Console.WriteLine,(,你的成绩是及格!,);,else,Console.WriteLine,(,你的成绩是不及格,必须补考,!);,3.2.1 if,语句(续),讨论,If,语句的布尔表达式可以是:,布尔变量,关系表达式,条件逻辑表达式,布尔常量,什么时候需要使用嵌套的,if,语句?,有多与一个条件判断时可以嵌套使用,if,;,if,语句嵌套太深程序难于理解,怎么办?,3.2.2 switch,语句,形式:,switch,(控制表达式),case,常量表达式,1,:语句,1,;,case,常量表达式,2,:语句,2,;,;,case,常量表达式,n,:语句,n,;,default,:语句,n+1,;,3.2.2 switch,语句(续),执行流程,首先计算,switch,后的控制表达式,然后将结果值一一与,case,后的常量表达式值比较,如果找到相匹配的,case,,程序就执行相应的语句序列,直到遇到跳转语句(如,break,),,switch,语句执行结束;,如果找不到匹配的,case,,就归结到,default,处,执行它的语句序列,直到遇到跳转语句为止;当然如果没有,defaul,,则不执行任何操作,3.2.2 switch,语句(续),C#,的,switch,语句需要注意以下几点:,switch,语句的控制表达式必须是,整数类型,(,如,char,、,sbyte,、,byte,、,ushort,、,short,、,uint,、,int,、,ulong,、,long),、,字符串类型或枚举类型,,,case,常量表达式必须是与控制表达式类型相兼容,,case,常量表达式的值必须互异,不能有重复。,只要某个,case,或,defult,分支后有任何语句,那么该分支必须以跳转语句结束这个语句序列,通常选用,break,语句作为跳转,也可以用,goto,转向语句等。,default,与随后的语句,n+1,可以没有,并且也可以不放在最后。,3.2.2 switch,语句(续),例:下面的代码是错误的,switch(str,),case“song and,dancs,”:,Console.WriteLine(“Song,”);,case“,dancs,”:,Console.WriteLine(“Dance,”);,break;,default:,break;,下面的代码是正确的,switch(str,),case“song and,dancs,”:,Console.WriteLine(“Song,”);,goto,case“dance”;,case“,dancs,”:,Console.WriteLine(“Dance,”);,break;,default:,break;,下面的代码是正确的,switch(str,),case“song and,dancs,”:,case“,dancs,”:,Console.WriteLine(“Dance,”);break;,default:,break;,3.2.2 switch,语句(续),例,3-2,用,switch,语句实现例,3-1,的功能,源代码,运 行,/,MySwitch.cs,using System;,class,MySwitch,static void Main(),Console.Write,(,你的成绩是多少,?(0100)?);,string,str,=,Console.ReadLine,();,int,grade=Int32.Parse(str);,if(grade,100|grade0),Console.WriteLine,(,输入错误,!);,else,switch(grade/10),case 10:,case 9:,Console.WriteLine,(,你的成绩是优,!);,break;,case 8:,Console.WriteLine,(,你的成绩是良,!);,break;,case 7:,case 6:,Console.WriteLine,(,你的成绩是及格,!);,break;,default:,Console.WriteLine,(,你的成绩是不及格,必须补考,!);,break;,/*/,课堂练习分别用,if,语句和,switch,实现,using System;,class,MySwitch,static void,Main(string,args,),Console.WriteLine,(,请选择要显示的内容,);,Console.WriteLine(1.,开发环境,);,Console.WriteLine(2.,编程语言,);,Console.WriteLine(3.,项目类型,);,Console.WriteLine(4.,退出,);,string i=,Console.ReadLine,();,if(i=1),Console.WriteLine(Microsoft,Visual Studio);,else if(i=2),Console.WriteLine(c,sharp,语言,);,else if(i=3),Console.WriteLine,(,控制台应用程序,);,/*/,using System;,class,MySwitch,static void,Main(string,args,),Console.WriteLine,(,请选择要显示的内容,);,Console.WriteLine(1.,开发环境,);,Console.WriteLine(2.,编程语言,);,Console.WriteLine(3.,项目类型,);,Console.WriteLine(4.,退出,);,string i=,Console.ReadLine,();,swtich(i,),case 1:,Console.WriteLine(Microsoft,Visual Studio);break;,case 2:,Console.WriteLine(c,sharp,语言,);break;,case 3:,Console.WriteLine,(,控制台应用程序,);break;,/*/,实现简易计算器,using System;,class,Caculator,static void,Main(string,args,),string,str,oper,;,double op1,op2,result=0.0;,Console.Write,(,请输入操作数,1,:,);,str,=,Console.ReadLine,();,op1=,double.Parse(str,);,Console.Write,(,请输入操作数,2,:,);,str,=,Console.ReadLine,();,op2=,double.Parse(str,);,Console.Write,(,请输入操作符,(+,、,-,、*、,/),:,);,oper,=,Console.ReadLine,();,switch(,oper,),case+:,result=op1+op2;Console.WriteLine(op1+oper+op2+=+result);,break;,case-:,result=op1-op2;Console.WriteLine(op1+oper+op2+=+result);,break;,case*:,result=op1*op2;Console.WriteLine(op1+oper+op2+=+result);,break;,case/:,result=op1/op2;Console.WriteLine(op1+oper+op2+=+result);,break;,default:,Console.WriteLine,(,未知的运算符,);,break;,/*/,3.3,循环语句,3.3.1,while语句,3.3.2 do-,while语句,3.3.3,for语句,(,foreach,语句),3.3.1 while,语句,形式:,while(,布尔表达式,),循环语句,执行流程如图,例,3-3 while,语句,计算,1,到,100,的累加和,源代码,布尔表达式,循环语句,开始,结束,true,false,/,MyWhile.cs,using System;,class,MyWhile,static void Main(),int,i=1;,int,sum=0;,while(i,=100),sum+=i;,i+;,Console.WriteLine(Sum,=+sum);,3.3.2 do-while,语句,形式:,do,循环语句,while(,布尔表达式,),;,执行流程如图,注意:分号不可缺少。,布尔表达式,循环语句,开始,结束,true,false,3.3.3 for,语句,形式:,for,(初始化变量;布尔表达式;调整变量值),循环语句,执行流程如图,初始化表达式,布尔表达式,循环语句,调整变量值,开始,结束,true,false,3.3.3 for,语句,(续),for,语句的“初始化变量”、“布尔表达式”、“调整变量值”,3,个部分皆可省略,但是其后的分号不能省略。,for(;),语句,/,等价于:,while(true,),语句,“初始化变量”部分一般用来初始化循环变量,但事实上,它也可以是其他赋值表达式、自增表达式、自减表达式、方法调用表达式、对象创建表达式或变量声明。不过,如果需要在其中声明多个变量时,这些变量的数据类型必须相同。,例:,for(int,i=0,j=0;i2,3.3.3 for,语句,(续),“初始化变量”部分如果省略或者不是用来给循环变量赋初值,则应在,for,语句前给循环变量赋初值。,“布尔表达式”部分如果省略,则,for,语句的循环体内必须有其他控制循环执行的语句,否则会形成死循环。,3.3.3 for,语句,(续),“调整变量值”部分一般用来修改循环变量的值。不过,它也可以是其他赋值表达式、自增表达式、自减表达式、方法调用表达式和对象创建表达式。如果它不是用来修改循环变量的值或者省略,则应在,for,语句的循环体内设置相应的语句。,例,3-4,用,for,语句实现乘法口诀表,源代码,运 行,/,MyFor.cs,using System;,class,MyFor,static void Main(),Console.WriteLine,(,乘法口决表,);,Console.WriteLine,(-);,Console.Write,(|);,for(int,i=1;i10;i+),Console.Write,(+i);,Console.WriteLine(n,-);,for(int,i=1;i10;i+),Console.Write(i,+|);,for(int,j=1;j10;j+),if(i,*j10),Console.Write,(+i*j);,else,Console.Write,(+i*j);,Console.WriteLine,();,3.3.3 for,语句,(续),“初始化变量”和“调整变量值”部分都可以存在由逗号分隔的多个表达式。,例:,for(int,i=0,j=0;,i2,i+,Console.WriteLine(i=+i+j=+j+),);,注意:,不可以在,“,初始化变量,”,部分同时出现变量声明和其他表达式,出现这种情况时,编译器会报告错误。,例:,for(,int,i=0,i+;,i2;i+);,/,错误,课堂讨论,什么时候使用,for,循环?,当预先知道代码语句的重复执行次数时,使用,for,循环,用,while,循环与,do while,循环的主要区别?,do while,循环至少执行一次循环体,三重循环可以相互替代吗?,可以,3.4,跳转语句,3.4.1,break语句,3.4.2,continue语句,3.4.3,goto语句,(,return,语句),(,throw,语句),3.4.1 break,语句,break,语句用在,switch,语句中的,作用是使程序的执行流程从它所在的,switch,语句中跳出。,break,语句用在循环语句中的,作用是中断当前循环体的执行,开始执行该循环后面的语句。对于多重循环,,break,语句只能使程序从其所在的那重循环中跳出。,例,3-5 break,语句,求110之间的质数(即除了1和它本身以外,没有其他约数的比1大的整数),源代码,运 行,using System;,class,MyBreak,static void Main(),bool,flag;,for(int,i=2;i=10;i+),flag=true;,for(int,j=2;j=i/2;j+),if(i%j,=0),flag=false;,break;,if(flag,),Console.Write(0t,i);,Console.WriteLine,();,3.4.2 continue,语句,continue,语句用在循环语句的循环体内,它的作用是中断本次循环,直接回到当前循环的起始处,开始下一轮循环。,例,3-6 continue,语句,求,110,之间的奇数,源代码,运 行,/,MyContinue.cs,using System;,class,MyContinue,static void Main(),for(int,i=0;i10;+i),if(i%2=0),continue;,Console.Write(0t,i);,Console.WriteLine,();,3.4.3,goto,语句,使程序无条件地跳转到当前方法中某个标签所标识的语句处继续执行。使用形式如下:,goto,标签;,标签标识语句的一般形式如下:,标签:语句,或,标签:,语句,3.4.3,goto,语句(续),使用,goto,语句一般不是一个好的习惯。,goto,语句一般用在,switch,语句中:,goto,case,常量表达式;,或,goto,default;,例,3-7,goto,语句求,1-10,之间的质数,源代码,运 行,/,MyGoto.cs,/,求,110,之间的质数,using System;,class,MyGoto,static void Main(),bool,flag;,for(int,i=2;i=10;i+),flag=true;,for(int,j=2;j=i/2;j+),if(i%j,=0),flag=false;,goto,error;,error:,if(flag,),Console.Write(0t,i);,Console.WriteLine,();,using System;,class,MyGoto,static void Main(),for(int,i=2;i=10;i+),for(int,j=2;j=i/2;j+),if(i%j,=0),goto,error;,Console.Write(0t,i);,error:continue;,Console.WriteLine,();,/*/,/,这样改可以吗,using System;,class,MyGoto,static void Main(),error:,for(int,i=2;i=10;i+),for(int,j=2;j=i/2;j+),if(i%j,=0),goto,error;,Console.Write(0t,i);,Console.WriteLine,();,/*/,3.5,习 题,1,、下面语句执行后,y,的值为:,int,x=0,y=0;,while(x 10)y+=(x+=2);,A,、,10 B,、,20 C,、,30 D,、,55,2,、下面语句执行后,y,的值为:,int,x=1,y=1;,do y=(+x);,while(x4);,A,、,16 B,、,64 C,、,128 D,、,512,作业,3,、编写一个程序,首先提示用户输入一个整数。然后分别利用,if,语句和条件运算符比较是否大于,100,,并输出结果,6,、分别利用,while,循环、,do-while,循环、,for,循环编程,打印,1100,之间能被,9,整除的所有整数,8,、,break,语句与,continue,语句在使用上有何不同,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服