第4章-C#控制语句_第1页
第4章-C#控制语句_第2页
第4章-C#控制语句_第3页
第4章-C#控制语句_第4页
第4章-C#控制语句_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

C#语言程序设计中国地质大学(北京)信息工程学院辛晓辉第4章C#控制语句4.1选择控制语句4.2循环控制语句讲解内容4.3跳转语句4.1选择控制语句C#中的选择控制语句有:if语句if…else语句if…elseif语句switch语句if语句格式:

if(条件表达式)语句;说明:语句中的“条件表达式”应为关系表达式或逻辑表达式。当“条件表达式”为true时,执行后面的“语句”。若条件满足时要执行多条语句,应用{和}把语句括起来,使之成为语句块。“(条件表达式)”中的括号不能省略。【例4-1】

编程实现如下功能:输入一个成绩,若成绩大于等于60,则输出“恭喜您,您通过了这次考试!”,否则不输出任何信息。要求编写为控制台应用程序。staticvoidMain(string[]args){floatcj;cj=Convert.ToSingle(Console.ReadLine());//输入成绩

if(cj>=60) //如果成绩大于等于60Console.WriteLine(“恭喜您,您通过了这次考试!”);

}If语句格式: if(表达式)语句1;else语句2;功能:首先计算表达式的值,如果表达式的值为true,则执行“语句1”,如果表达式的值为false,则执行“语句2”。If…else语句【例4-2】编程实现如下功能:输入一个成绩,如果成绩大于等于60则输出“恭喜您,您通过了这次考试!”,否则输出“对不起,准备补考吧!”。If…else语句staticvoidMain(string[]args){floatcj;cj=Convert.ToSingle(Console.ReadLine());

if(cj>=60) Console.WriteLine("恭喜您,您通过了这次考试!");elseConsole.WriteLine("对不起,准备补考吧!");

}格式:

if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;……else语句n;If…elseif语句功能:首先判断表达式1的值,若为true,就执行语句1,否则继续判断表达式2的值。若表达式2的值为true,就执行语句2。否则继续判断表达式3的值,……依此类推,直到找到一个表达式的值为true并执行后面的语句。若所有表达式的值都为false,则执行else后面的语句n。【例4-3】编写一个求成绩等级的程序。要求输入一个学生的考试成绩,输出其分数和对应的等级。共分5个等级:小于60分的为“E”;60~69分为“D”;70~79分为“C”;80~89分为“B”;90分以上为“A”。要求编写为控制台应用程序。If…elseif语句【例4-3】编写一个求成绩等级的程序。staticvoidMain(string[]args){floatcj; chardj;Console.Write("请输入您的成绩:");

cj=Convert.ToSingle(Console.ReadLine());

if(cj>=90)dj='A';

elseif(cj>=80)dj='B';

elseif(cj>=70)dj='C';

elseif(cj>=60)dj='D';

elsedj='E';

Console.WriteLine("您的成绩等级为:{0}",dj);

}switch语句格式:

switch(表达式)

{case常量表达式1:语句1;break;case常量表达式2:语句2;break;……case常量表达式n:语句n;break;[default:语句n+1;break;]}switch语句switch语句功能:程序执行时首先计算表达式的值,然后依次与case后面的常量表达式1、常量表达式2、……、常量表达式n比较,若表达式的值与某个case后面的常量表达式值相等,就执行此case后面的语句,然后执行break语句以退出该switch语句。若表达式的值与所有case后面的常量表达式的值都不相同,则执行default后面的“语句n+1”,执行后退出switch语句,退出后程序流程转向switch语句后的下一个语句。switch语句注意:

switch后面括号中的表达式通常是一个整型或字符型的表达式。

switch语句可以包含任意数目的case块,但任两个case块都不能具有相同的“常量表达式”。每一个case块(包括default块)的后面,都必须有break语句,否则将会出现语法错误。但有一个例外,当case语句中没有代码时,可以不包含break语句。【例4-4】用switch语句重写例4-3。staticvoidMain(string[]args){floatcj;chardj;Console.Write("请输入您的成绩:");cj=Convert.ToSingle(Console.ReadLine());switch((int)cj/10) //根据成绩的十位数跳转

{case10:case9:dj='A';break; case8:dj='B';break; case7:dj='C';break; case6:dj='D';break; default:dj='E';break; }Console.WriteLine("您的成绩等级为:{0}",dj);}思考题下列程序的输出结果是【】。staticvoidMain(string[]args){inta=15,b=21,m=0;switch(a%2)

{case0:m++;break;case1:m++; switch(b%2){case0:m++;break;default:m=m+2;break; }break;}Console.WriteLine("m={0}",m);}第4章C#控制语句4.1选择控制语句4.2循环控制语句讲解内容4.3跳转语句4.2循环控制语句C#支持3种格式的循环控制语句:while语句do…while语句for语句while语句格式:

while(表达式)

语句;注意:循环体中应有使循环趋于结束的语句,即能够使表达式的值由true变为false的语句。当型循环又称“允许0次循环”。while循环语句功能:首先计算while后面圆括号内的表达式,如果其值为true,则执行循环语句部分,然后再次计算while后面圆括号内的表达式,重复上述过程……当某一次计算表达式的值时发现表达式的值为false,将退出循环,转入下一语句去执行。【例4-5】编程求下式的值(要求编写成控制台应用程序):staticvoidMain(string[]args){intsum=0,i=1,t; while(i<=10) //循环,循环条件为“i<=10”{t=i*i; //求第i项的值放在t中

sum=sum+t; //把该项的值加到和sum中

i=i+1; //i的值加1准备加下一项

}Console.WriteLine("1*1+2*2+…+10*10={0}",sum); }格式: do 语句while(表达式);注意:无论一开始表达式的值是true还是false,循环体中的语句至少执行一次因此直到型循环又称“不允许0次循环”。do…while循环语句格式:

do 语句;while(表达式);功能:执行循环体中的语句,然后计算表达式的值,若表达式的值为true,则再次执行循环体中的语句……如此循环,直到某次计算表达式值时,发现表达式的值为false,此时将不再执行循环体而是转到循环体后面的语句执行。do…while循环语句【例4-6】编一个程序按下列公式求e的值(要求精度达到10-6次方)。staticvoidMain(string[]args){doublesum=1.0,t=1; inti=1;

do

{t=t/i; sum=sum+t;

i=i+1;

}while(t>=1.0e-6); Console.WriteLine("e={0}",sum); }for循环语句格式:for(表达式1;表达式2;表达式3)语句;for循环语句格式:for(表达式1;表达式2;表达式3)语句;功能:首先计算表达式1,然后计算表达式2,若表达式2的值为true,则执行for语句中的循环体(语句),循环体执行后,计算表达式3,然后再计算表达式2,若表达式2的值为true,再执行for语句中的循环体(语句)……如此循环,当某一次计算表达式2的值时发现它的值为false,将退出for循环,执行for后面的语句。for循环语句格式:

for(表达式1;表达式2;表达式3)语句;说明:表达式1可省略,此时应在for语句之前给循环变量赋初值。表达式2应是逻辑表达式或关系表达式,也可省略,省略时相当于表达式2的值为true。表达式3也可省略,但此时程序设计者应保证循环能正常结束。【例4-7】编写一个程序,输出下图所示的乘法表。【例4-7】编写一个程序,输出下图所示的乘法表。staticvoidMain(string[]args){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)Console.Write("{0}×{1}={2}",i,j,i*j);Console.WriteLine();}}思考题下列程序的输出结果是【】。staticvoidMain(string[]args){inti,j,s=0;for(i=2;i<6;i=i+2)

{s=1;for(j=i;j<6;j++)s+=j; }Console.WriteLine("s={0}",s);}第4章C#控制语句4.1选择控制语句4.2循环控制语句讲解内容4.3跳转语句4.3跳转语句C#支持3种跳转语句:break语句continue语句goto语句break语句格式:

break;功能:终止对循环的执行,流程直接跳转到当前循环语句的下一语句执行。说明:break语句只可用在switch语句和三种循环语句中;一般在循环体中并不直接使用break语句,而是和一个if语句进行配合使用。break语句1条件……break;……falsetruewhiledo……break;…...条件falsetruewhilebreak语句1表达式2……break;…...falsetruefor表达式1表达式3switch表达式语句组1break;语句组2break;语句组nbreak;语句组break;…...常量1常量2常量ndefaultcase【例4-8】编写一个控制台应用程序,判断从键盘输入的大于3的正整数是否为素数。staticvoidMain(string[]args){intn,i;

boolprime=true;Console.Write("输入一个大于3的正整数:");n=int.Parse(Console.ReadLine());

for(i=2;i<=Math.Sqrt(n);i++)if(n%i==0){prime=false;break;}if(prime)Console.WriteLine("{0}是素数",n);elseConsole.WriteLine("{0}不是素数",n);}格式:

continue;功能:结束本次循环,即跳过本次循环体中余下的尚未执行的语句,接着再一次进行循环条件判断,以便执行下一次循环。continue语句continue语句1表达式2……continue;…...falsetruefor表达式1表达式3表达式……continue;……falsetruewhiletruedo……continue;…...表达式falsewhile说明:执行continue语句并没有使整个循环终止,只是结束本次循环的执行;在for循环中,遇到continue后,跳过循环体中余下的语句,去计算“表达式3”,然后再计算“表达式2”以决定是否开始下一次循环;一般在循环体中也不直接使用continue语句,而是和一个if语句进行配合使用。continue语句【例4-9】编写一个程序,对用户输入的所有正数求和,输入0时结束循环。提示:程序每读入一个数,判断它的正负,如果为负,则利用continue语句结束当前循环,继续下一次循环,否则将该数加到总数上去。staticvoidMain(string[]args){intsum=0,n=1;while(n!=0) {Console.Write("输入一个整数(以0表示结束):");n=int.Parse(Console.ReadLine());if(n<0)continue; sum+=n;}Console.WriteLine("所有正数之和={0}",sum);}if(n>=0)sum+=n;格式:

goto语句标号;功能:将程序执行流程无条件转移到语句标号指定的位置。说明:“语句标号”是一个用户定义的标识符,标号必须与goto语句处于同一函数中。定义标号时,由一个标识符后面跟一冒号组成。

goto语句通常不要使用goto语句!goto语

温馨提示

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

评论

0/150

提交评论