您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第3章结构化程序设计
第3章结构化程序设计3.1条件语句一、格式1:if(表达式)语句1else语句2功能:if语句首先判断表达式的值是真还是假。若为真,则执行语句1,然后跳出if语句(选择结构),继续执行if语句下面的语句;若为假,则执行else后面的语句2,然后跳出if语句(选择结构),继续执行if语句下面的语句。流程图:例:if(studentGrade=60)Console.WriteLine(“PASSED”);else表达式dezhi语句2语句1If的后继语句假真Console.WriteLine(“FAILED”);二、格式2:if(表达式)语句1功能:if语句首先判断表达式的值是真还是假。若为真,则执行语句1,然后跳出if语句(选择结构),继续执行if语句下面的语句;若为假,则跳出if语句(选择结构),继续执行if语句下面的语句。流程图:例:if(studentGrade=60)Console.WriteLine(“PASSED”);例题1:实现数据的四舍五入(P42)usingSystem;publicclasstest表达式dezhi语句1If的后继语句假真{publicstaticvoidMain(){Console.WriteLine(“PleaseinputX:”);floatX=Convert.ToSingle(Console.ReadLine());if(X-(int)X=0.5){X=(int)X+1;}else{X=(int)X;}//选择结构结束Console.Write(“X={0}”,X);//if的后继语句}}课堂练习题任意输入两个数,判断它们的大小并显示判断的结果。三、格式3:if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……else语句n功能:if语句首先判断表达式1的值是真还是假。若为真,则执行语句1,然后跳出if语句(选择结构),继续执行if语句下面的语句;若为假,则判断表达式2的值是真还是假。若为真,则执行语句2,然后跳出if语句(选择结构),继续执行if语句下面的语句;若为假,则判断表达式3的值是真还是假。以此类推。若所有表达式的值都为假,则执行else后面的语句n,然后跳出if语句(选择结构),继续执行if语句下面的语句。例题:实现求如下函数值的程序。(P43)-1,x0f(x)0,x=01,x0usingSystem;publicclassTest{publicstaticvoidMain(){Console.WriteLine(“PleaseinputX:”);floatx=Convert.ToSingle(Console.ReadLine());inty;if(x0)y=1;elseif(x=0)y=0;elsey=-1;Console.WriteLine(“Y={0}”,y);}}3.2分支语句一.格式:switch(表达式1){case常量表达式1:语句1case常量表达式2:语句2……[default:语句n]}二.功能表达式1中的值与每个常量表达式进行比较,如果有一个匹配,就执行为该匹配提供的语句;如果没有匹配,就执行default部分中的代码。一.注意1.在default关键字及后面的语句n缺省的情况下,如果所有的常量表达式的值和表达式1的值都不相等,程序会跳出switch语句,转向执行switch语句下面的语句。2.每个case后使用break语句中断switch语句的执行或使用跳转语句goto跳转到另一个case。3.所有常量表达式的值不同,如果有两个或两个以上的case中常量表达式的值相同,编译时也会出错。4.一个case语句处理完后,不能自由进入下一个case语句,但这个规则有一个例外。如果把多个case放在一起(堆叠它们),其后加一行代码,实际上是一次检查多个条件。如果满足这些条件中的任何一个,就会执行该行代码。switch(表达式1){case常量表达式1:case常量表达式2:语句break;……….}例题1:usingSystem;classSwitchTest{staticvoidMain(){chargrade;intaCount=0,bCount=0,cCount=0,dCount=0,fCount=0;for(inti=1;i=10;i++){Console.Write(Enteralettergrade:);grade=char.Parse(Console.ReadLine());switch(grade){case'A':case'a':++aCount;break;case'B':case'b':++bCount;break;case'C':case'c':++cCount;break;case'D':case'd':++dCount;break;case'F':case'f':++fCount;break;default:Console.WriteLine(Incorrectlettergradeentered.+\nGradenotaddedtototals.);break;}}Console.WriteLine(\nTotalsforeachlettergradeare:\nA:{0}+\nB:{1}\nC:{2}\nD:{3}\nF:{4},aCount,bCount,cCount,dCount,fCount);}}5.每个常量表达式的值必须是个常量,一种方法是提供字面值;另一种方法是使用常量。可以使用关键字const声明常量,同时必须给他们赋值。例如:constintintTwo=2;是合法的。constintintTwo;intTwo=2;编译时产生编译错。例题2staticvoidMain(){conststringmyName=karli;conststringsexyName=angelina;conststringsillyName=ploppy;stringname;Console.WriteLine(Whatisyourname?);name=Console.ReadLine();switch(name.ToLower())//把输入的姓名转换为小写{casemyName:Console.WriteLine(Youhavethesameasme!);break;casesexyName:Console.WriteLine(Oh,whatasexynameyouhave!);break;casesillyName:Console.WriteLine(That'saverysillyname.);break;}Console.WriteLine(Hello{0}!,name);}例题3:usingSystem;classtest{publicstaticvoidMain(){Console.Write(Enteracharacter:);charch=(char)Console.Read();switch(ch){case'Y':Console.WriteLine(Welcome!);break;case'y':Console.WriteLine(Howareyou!);break;default:Console.WriteLine(Invalidinput!);break;}}}作业:上机完成上述各例题、练习题,分析运行结果。3.3循环语句3.3.1while语句一.语法格式:while(表达式)循环体二.语句功能:先判断表达式的值。若为真,则执行循环体,然后再判断表达式的值。只要表达式一直为真,那么循环体就不断进行,直到表达式的值变成假,程序的流程转去执行循环的后继语句。三.流程图:四.注意:1.循环体可以是一条语句,也可以是语句块。如果是块,那么块必须用大括号扩起来。2.循环体中应该有使循环趋于结束的操作。五.例题1.用while语句实现100以内的偶数累加。(练习)usingSystem;namespace偶数累加{classClass1{publicstaticinteven(){表达式的值?循环体真循环的后继语句假intresult=0;inti=0;while(i=100){result+=i;//result=result+ii+=2;}Console.WriteLine(result:{0},result);return0;}staticvoidMain(){even();}}}(书P43)运行结果为result:25503.3.2do-while语句一.语法格式:do循环体while(表达式);二.语句功能:先执行循环体,然后再判断表达式的值。只要表达式一直为真,那么循环体就不断进行,直到表达式的值变成假,程序的流程转去执行循环的后继语句。三.流程图:四.注意:1.循环体可以是一条语句,也可以是语句块。如果是块,那么块必须用大括号扩起来。2.while语句后必须写分号(;)。3.循环体中应该有使循环趋于结束的操作。五.例题1.用do-while语句计算10的阶乘。usingSystem;namespace_10_{classClass1表达式的值?循环体真循环的后继语句假{staticvoidMain(){longy=1;intx=10;do{y*=x;x--;}while(x0);Console.WriteLine(Y:{0},y);}}}(书P44)运行结果为:Y:36288003.3.3for语句一.语法格式:for([表达式1];[表达式2];[表达式3])循环体二.语句功能:1.首先求解表达式1;2.判断表达式2的值是真是假,若为真,则执行循环体,然后再执行下面的第3步。如果表达式2的值为假,则结束循环,程序的流程转去执行循环的后继语句;3.求解表达式3;4.转回第2步继续执行。三.流程图:四.注意:1.表达式1和表达式3可以是一个简单的表达式,也可以是用逗号分隔的若干个表达式。2.表达式2一般是关系表达式或逻辑表达式,也可以是表达式2的值?求解表达式1表达式真循环的后继语句假循环体表达式3算术表达式或字符表达式等。二.例题1.For语句用法usingSystem;publicclassTest{publicstaticvoidMain(){for(inti=0;i=10;i++){Console.Write(i);}}}运行结果:2.用for语句实现100以内的偶数累加。(练习)usingSystem;namespace偶数累加{classClass1{publicstaticinteven(){intresult=0;for(inti=0;i=100;i+=2){result+=i;//result=result+i}Console.WriteLine(result:{0},result);return0;}staticvoidMain(string[]args){even();}}}//P45例题3.用for语句计算10的阶乘。usingSystem;namespace_10_{classClass1{staticvoidMain(string[]args){for(longy=1,intx=10;x0;x--){y*=x;}Console.WriteLine(Y:{0},y);}}}//(书P46)六、for结构应用举例(1)以步长1进行从1~100的递增控制变量for(inti=1;i=100;i++)(2)以步长-1进行从100~1的递增控制变量(或者以步长1递减)for(inti=100;i=1;i--)(3)以步长7进行从7~77的递增控制变量for(inti=7;i=77;i+=7)(4)以步长-2进行从20~2的递增控制变量for(inti=20;i=2;i-=2)(5)控制变量按照下列数值的序列:2,5,8,11,14,17,20变化for(inti=2;i=20;i+=3)(
本文标题:第3章结构化程序设计
链接地址:https://www.777doc.com/doc-2193692 .html