您好,欢迎访问三七文档
第四章C51流程控制语句第一节、C语言的基本结构C语言是一种结构化编程语言,结构化语言的基本元素是模块,是程序的一部分。每一个模块中,都只有一个出口和一个入口。结构化程序由若干模块组成,每个模块中包含若干个基本结构,而每个基本结构中可以有若干条语句。C语言有三种基本结构:顺序结构选择结构循环结构一、顺序结构顺序结构是一种最基本的、最简单的编程结构。AB二、选择结构选择结构有两种形式:二选一结构多选一结构二选一结构(if语句):表达式为1?A1B0表达式为1?A10二、选择结构多选一结构(switch语句):表达式的值=?A1A2An…...常量表达式1常量表达式2常量表达式n三、循环结构循环语句有两种:先判断,后执行先执行,后判断先判断,后执行(while,for):先执行,后判断(do…while):表达式为1?A10表达式为1?A10第二节选择语句选择结构有两种形式:多选一结构(switch/case语句)复合语句:由一对大括号括起来的语句。例:{c=a;a=b;b=c;}二选一结构(if语句)一、if语句的基本形式if语句的基本形式有四种:1.if(表达式)语句;3.if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;…….elseif(表达式n)语句n;else语句n+1;2.if(表达式)语句1;else语句2;4.if的嵌套形式:if(表达式1)if(表达式2)语句1;else语句2;elseif(表达式3)语句3;else语句4;二、if语句的各种例子b=3;if(a=0)b=5;b=3;if(a==0)b=5;elseb=7;b=3;if(a=0)b=5;elseif(a==1)b=7;elseif(a==2)b=9;elseif(a==3)b=11;elseb=13;b=3;if(a=0)b=5;if(a=5)b=7;elseb=9;elseif(a=-5)b=11;elseb=13;三、if语句的垂悬问题例:if(ab)if(ad)c=15;elsec=0;if(ab){if(ad)c=15;}elsec=0;当if的个数与else的个数不相同时,else采用就近配对的原则。if的个数大于等于else的个数。if(ab)if(ad)c=13;elseif(ae)c=15;elsec=0;四、条件运算符条件运算符的格式:表达式1?表达式2:表达式3含义:if(表达式1)表达式2;else表达式3;例:(ad)?(c=15):(c=0);也可写为:c=(ad)?15:0;含义:if(ad)c=15;elsec=0;例:max=(ab)?a:b;if(ab)max=a;elsemax=b;题:d=(ab)?a:(bc)?a:c五、if语句的例子y=1当x00当x=0-1当x01.if(x0)y=-1;elsey=0;if(x0)y=1;2.if(x0)y=1;if(x0)y=-1;elsey=0;3.if(x0)y=-1;if(x==0)y=0;if(x0)y=1;4.if(x0)y=-1;elseif(x==0)y=0;elsey=1;5.y=-1;if(x==0)y=0;elsey=1;6.y=-1;if(x==0)y=0;if(x0)y=1;7.if(x=0)y=-1;elsey=1;if(x==0)y=0;8.if(x=0)y=0;if(x=0)y=1elsey=-1;9.if(x=0)y=-1;elsey=1;if(x=0)y=0;六、switch/case语句switch语句的基本形式如下:switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;…………………...case常量表达式n:语句n;break;default:语句n+1;}说明:1表达式一般要求是有序可数的类型,例:整形、字符型、枚举类型等;2.每个case后的常量表达式必须互不相同;3.case后的常量表达式的顺序无所谓;4.执行方式是根据表达式的值来取case后面的常量表达式;5.break可有可无,但执行方式不一样。七、switch语句的例子用A、B、C、D、E来表示分数的等级:100=score=90A90score=80B80score=70C70score=60Dscore=90Eswitch(score){}switch(scores/10){case10:case9:grade=‘A’;break;case8:grade=‘B’;break;case7:grade=‘C’;break;case6:grade=‘D’;break;default:grade=‘E’;}第二节循环语句循环语句一般有循环体和循环终止条件组成。一组被重复执行的语句称为循环体,能否重复执行下去则取决于循环终止条件。实现循环的语句有以下三种:while语句先判断,后执行;do…while语句先执行,后判断;for语句先判断,后执行。一、while语句的格式和例子while语句的一般形式为:while(表达式){循环体;}表达式为1?循环体10voidmain(void){inta=0,sum=0;while(){sum+=a;a++;}printf(“sum=%d”,sum);}a101while((P1&0x10)0&&y++=5){a=1;b=45;x=P1;}二、do…while语句do...while语句的一般形式为:do{循环体;}while(表达式);voidmain(void){inta=0,sum=0;do{sum+=a;a++;}while();printf(“sum=%d”,sum);}a101表达式为1?循环体10三、for语句for循环语句的一般形式为:for(表达式1;表达式2;表达式3){循环体;}for循环的语句执行过程如下:1、先对表达式1赋初值,进行初始化。2、判断表达式2是否满足给定的循环条件,若满足,则执行循环体内语句,然后执行下面第三步。若不满足循环条件,则结束循环,转到第五步。3、若表达式2为真,在执行指定的循环语句后,求解表达式3。4、回到第二步继续执行。5、退出for循环,执行下面一第语句。四、for语句的例子voidmain(void){intk,sum=0;for(k=0;k101;k++)sum+=k;printf(“sum=%d\n”,sum);}例:1+2+…+100对for(k=0;k101;k++)sum+=k;语句的修改及含义:k=0;for(;k101;)sum+=k++;k=0;for(;k101;k++)sum+=k;for(k=0;k101;)sum+=k++;for(k=0;k101;k++)sum+=k;k=0;for(;;)sum+=k++;五、for语句的应用延时程序:voidmsec(unsignedintx){unsignedcharj;while(x--)for(j=0;j125;j++);}六、循环语句的嵌套三个循环语句可以互相嵌套,嵌套即循环语句中套循环语句例:while(表达式){………do{………}while(表达式)}for(表达式1;表达式2;表达式3){………while(表达式){………}}习题1.用三种循环方式分别编写程序显示1到100的平方。2.用辗转相除法求两个数的最大公约数
本文标题:c51流程控制语句
链接地址:https://www.777doc.com/doc-635129 .html