43 switch语句 形式: switch(表达式e){ case常量表达式expl:语句序列1; case常量表达式exp2:语句序列2 case常量表达式expn:语句序列n default 语句序列n+1; 说明:(1)表达式e为基本类型、各语句序列不需加{}; 2) default部分可省略; (3)常量表达式指在编译时(执行前)能确定值的表达式
4.3 switch语句 形式: switch (表达式e){ case 常量表达式exp1:语句序列1; case 常量表达式exp2:语句序列2; ………. case 常量表达式expn:语句序列n; default: 语句序列n+1; } 说明:(1)表达式e为基本类型、各语句序列不需加{}; (2)default部分可省略; (3)常量表达式指在编译时(执行前)能确定值的表达式
起点 无 break时 顺序执行 执行流程:计算表达式e 直 exp 说明: ep真语句序列1 执行 语句 break可使流程 break 从各语句序列直接 语句序列2 转移到终点 直 e-expn 直 语句序列n 有 default 语句序列n+ 点
执行流程: 计算表达式e 语句序列1 语句序列n+1 语句序列2 语句序列n e=exp1 真 e=exp2 e=expn 有default 真 真 真 起点 终点 说明: 语句break可使流程 从各语句序列直接 转移到终点; 无break时 顺序执行 执行 break
main() float x printf(" input score); scanf(%of &x) i=x/10;/*的正确值应为:0至10 if(1>10‖i<0) printf( input error”); switch(1)i case 10 case 9: printf("excellent); break; case 8: printf( good); break case 7 case 6: printf( middle); break; default: printf(" bad)
main() {float x; int i; printf(“input score”); scanf(“%f”,&x); i=x/10; /*i的正确值应为:0至10*/ if (i>10 || i<0) printf(“input error”); else switch ( i ) { case 10: case 9: printf(“excellent”); break; case 8: printf(“good”); break; case 7: case 6: printf(“middle”); break; default: printf(“bad”); } }
44 while语句 问题:求S=∑i 解法1:S=1+2+3+4+5+6+7+8+9+10; 不适合大规模运算 解法2:逐步累加S s=0 用i控制 s=0.i=1: S=S+1; 其 while (i<10 s=s+2: {S=S+ 1++ s=s+10
4.4 while语句 问题:求S= 解法1:S=1+2+3+4+5+6+7+8+9+10; 不适合大规模运算 解法2:逐步累加S s=0; s=s+ 1; s=s+ 2; …….. s=s+ 10; = 10 i 1 i 用i控制 其变化 s=0; i=1; while (i<=10) { s=s+i; i++; }
whii句的形式 while(表达式)语句 其中: 表达式可为任何类型; 语句为循环体,仅一条语句, 多条时用复合语句; 当表达式非0时执行循环体, 表达式> 注意: 非0 为避免死循环循环变量在循环开始前初始化语句 表达式中应包括循环变量,循环体中修改, 最终可使表达式为0,终止循环
while语句的形式: while (表达式) 语句 其中: ▪ 表达式可为任何类型; 语句为循环体,仅一条语句, 多条时用复合语句; ▪ 当表达式非0时执行循环体, 注意: 为避免死循环,循环变量在循环开始前初始化, 表达式中应包括循环变量,循环体中修改, 最终可使表达式为0,终止循环。 语句 表达式 非0 0