《专升本 c语言课件 c04(05) 流程控制》由会员分享,可在线阅读,更多相关《专升本 c语言课件 c04(05) 流程控制(21页珍藏版)》请在金锄头文库上搜索。
1、C程序设计四、流程控制,四、流程控制 4.1 概述 三种基本的流程控制:顺序、选择、循环,四、流程控制 4.2 if结构 if(表达式)语句1if(表达式)语句1else 语句2,流程图 NS图,四、流程控制 4.2 if结构 if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3else 语句n,当输入79,24时,以下程序a变为多少?scanf(%d,35,四、流程控制 4.2 if结构 if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3else 语句n,分析下面几段程序为什么等效scanf(%d,scanf(%d,四、流
2、程控制 4.2 if结构 if语句可以嵌套注意else与最近的if配对,(1)a=4;b=0;c=1;(2)a=4;b=2;c=0;(3)a=0;b=0;c=1;d分别是多少?d=0;if(a1) if(b1) if(c1)d=1;else d=2;else d=3;,(1)d=3(2)d=2(3)d=0相当于d=0;if(a1) if(b1) if(c1)d=1; else d=2; else d=3;,四、流程控制 4.3switch结构switch(表达式) case常量表达式: /*不含变量,turbo c中要求整型和字符型*/ 语句; break; /*退出switch.*/case
3、常量表达式: 语句;default: 语句;各case后的常量表达式的值不能相同。当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句。若所有的case中的常量表达式的值都不与表达式的值相等,就执行default后的语句。default的位置可以在前面,效果一样。执行完一个case后的语句后,到下一个case不判断条件继续执行。case后有多个语句时,可以不用,判断对错1) switch(a+b); case 1:y=a+b; break; case 0:y=a-b; break; case 3:y=b-a;break; 2) switch a case c1 :
4、y=a-b; break;case c2: x=a*d; break;default:x=a+b; 3) switch(a-b) default:y=a*b;break;case 4:x=a+b;y=a-b;break;,四、流程控制 4.3switch结构switch(表达式) case常量表达式: /*不含变量,turbo c中要求整型和字符型*/ 语句; break; /*退出switch.*/case常量表达式: 语句;default: 语句;各case后的常量表达式的值不能相同。当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句。若所有的case中的常
5、量表达式的值都不与表达式的值相等,就执行default后的语句。default的位置可以在前面,效果一样。执行完一个case后的语句后,到下一个case不判断条件继续执行。case后有多个语句时,可以不用,main()int a=-5;switch(a)case -5:printf(bbb);case 8:printf(ccc);default: printf(ddd);输出什么?,bbbcccddd,四、流程控制 4.3switch结构switch(表达式) case常量表达式: /*不含变量,turbo c中要求整型和字符型*/ 语句; break; /*退出switch.*/case常量
6、表达式: 语句;default: 语句;,main()int a=-5;switch(a)case -5:printf(bbb);default: printf(ddd);case 8:printf(ccc);输出什么?,bbbdddccc,四、流程控制 4.3switch结构switch(表达式) case常量表达式: /*不含变量,turbo c中要求整型和字符型*/ 语句; break; /*退出switch.*/case常量表达式: 语句;default: 语句;,main()int a=-5;switch(a)default: printf(ddd);case 8:printf(aa
7、a);case -5:printf(bbb);case 7:printf(ccc);输出什么?,bbbccc,四、流程控制 4.3switch结构switch(表达式) case常量表达式: /*不含变量,turbo c中要求整型和字符型*/ 语句; break; /*退出switch.*/case常量表达式: 语句;default: 语句;,main()int a=-55;switch(a)default: printf(ddd);case 8:printf(aaa);case -5:printf(bbb);case 7:printf(ccc);输出什么?,dddaaabbbccc,四、流程
8、控制 4.3switch结构switch(表达式) case常量表达式: /*不含变量,turbo c中要求整型和字符型*/ 语句; break; /*退出switch.*/case常量表达式: 语句;default: 语句;,main() int a=0,i;for(i=0;i5;i+) switch(i) case 0: case 3:a+=2;break; case 1: case 2:a+=3; default:a+=5; printf(%dn,a);输出什么?,25,四、流程控制 4.4 循环结构while(表达式)语句do语句 while(表达式)for(表达式1;表达式2;表达式
9、3)语句,填流程图,注明条件判断的出口。,四、流程控制 4.4 循环结构while(表达式)语句do语句 while(表达式)for(表达式1;表达式2;表达式3)语句,四、流程控制 4.4 循环结构while(表达式)语句do语句 while(表达式)for(表达式1;表达式2;表达式3)语句for中的各部分都可以省略,省略的部分不执行。,四、流程控制 4.4 循环结构while(表达式)语句do语句 while(表达式)for(表达式1;表达式2;表达式3)语句break跳出本级循环continue结束本次循环,#include main() int i=0,a=0;while(i100)
10、break;B)for(;);C)int k=1000;do +k;while(k=10000);D)int s=36;while(s);-s;,死循环死循环不是死循环死循环,四、流程控制 4.4 循环结构while(表达式)语句do语句 while(表达式)for(表达式1;表达式2;表达式3)语句break跳出本级循环continue结束本次循环,以下程序的输出结果是什么?main()int i,j,x=0;for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2)continue; x+; x+; printf(x=%dn,x);,x=8,四、流程控制 4.4 循环结构while(表达式)语句do语句 while(表达式)for(表达式1;表达式2;表达式3)语句break跳出本级循环continue结束本次循环,for(y=1,x=1;y=10)break; if(x%2=1) x+=5;continue; x-=3; x的值是多少?,10,四、流程控制 4.4 循环结构循环结束的情况分析,for(x=1;x=50;x=x*2);printf(%d,x);输出什么?,64,