《C语言第四章选择结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言第四章选择结构ppt课件.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一一 、if if 语句(条件选择语句)语句(条件选择语句)1 1、最基本的、最基本的if if 语句语句表达式表达式语句组语句组或语句或语句真真假假基本基本 if if 语句的通常形式是:语句的通常形式是:if ( if ( 表达式表达式 ) ) 语句;语句;if ( if ( 表达式表达式 ) ) 语句;语句; 语句;语句; if ( x y ) /* 简单语句简单语句 */ z = x ;可以为逻辑表达可以为逻辑表达式或关系表达式式或关系表达式if ( x y ) /* 复合语句复合语句 */ z=x; x=x+1; printf(“%dn”,z); 复合语句:是由一对花括号包围起来的一
2、条或多条语句。复合语句:是由一对花括号包围起来的一条或多条语句。复合语句的形式:复合语句的形式:选择结构选择结构循环结构循环结构 语句语句1 1; 语句语句2 2; 语句语句3 3; IfIf( 条件条件 ) 语句语句1 1; 语句语句2 2; 语句语句3 3; whilewhile( 条件条件 ) 语句语句1 1; 语句语句2 2; 语句语句3 3; 复合语句复合语句逻辑上我们把复合语句看作是一条语句。逻辑上我们把复合语句看作是一条语句。例1:要求用户输入一个实数,然后程序求出这个实数的绝对值并输出。#include main( ) float x,y; printf(“Please inp
3、ut x:”); scanf(“%f”,&x); y = x; if(y=0 x=0则则y=xy=x,如果,如果x0 x=0)If ( x=0) y=x; y=x;if (x0)if (x=0)If ( x=0) 语句语句1 1; ;elseelse 语句语句2 2; ;注意:如果使用了复合语句,一定要用大括号把它们括起来。注意:如果使用了复合语句,一定要用大括号把它们括起来。If( x0 )If( x0 ) printf( printf(“x x为正数为正数nn”);); x=x+1; x=x+1;elseelse printf( printf(“x x为负数为负数nn”););If( x0
4、 )If( x0 ) printf( printf(“x x为正数为正数nn”);); x=x+1; x=x+1; elseelse printf( printf(“x x为负数为负数nn”););#include #include main( )main( ) int x,y; int x,y; scanf( scanf(“%d,%d%d,%d”,&x,&y); ,&x,&y); If( xy ) If( xy ) printf( printf(“xynxyn”);); else else printf( printf(“xyx y ) printf(“ x大于yn ”);else if (
5、 x y ) printf(“ x小于yn ”);else printf(“ x等于yn ”);/*example2.c*/#include main() char c; printf(Enter a character:); c=getchar(); if(c=0&c=A&c=a&c=z) printf(The character is a lower lettern); else printf(The character is other charactern);运行:运行:Enter a character:8 The character is a digit运行:运行: Enter a
6、 character: D The character is a capital letter运行:运行: Enter a character: h The character is a lower letter#define RATE1 1.0#define RATE2 0.8#define RATE3 0.7#define RATE4 0.5#include main( ) int num; /* 商品的购买量 */ float price,money; /* 商品的单价和应付金额 */ printf(“请输入商品的购买量:”); scanf(“%d”, ); printf(“请输入商品的
7、单价:”); scanf(“%d”, ); If( ) /* 构物少于10件的不打折 */ money=RATE1 * price * num ; else if ( ) /* 10件以上8折 */ money=RATE2 * price * num ; else if ( ) /* 20件以上7折 */ money=RATE3 * price * num ; else /* 50件以上5折 */ ; printf(“应付金额为%.2 f元n”, ); &num&pricenum10num 20num b) max = a ; else max = b ;max = ( a b ) ? a :
8、 b一般形式:表达式1 ? 表达式2 :表达式3表达式1为真,结果为表达式2的值 表达式为假,结果为表达式3的结果; 运算符 “ ?:”的优先级只在逗号和赋值运算 符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以下语句后表达式的值为多少? n的值为多少? (a b?a:cd?c:dab?a:(cd?c:d)表达式值为15,n=2六、六、 switch 语句语句switch 语句是多分支的选择语句又称开关语句。语句是多分支的选择语句又称开关语句。switch switch 的
9、一般形式为:的一般形式为:注意:常量表达式必须是整型、字符型。注意:常量表达式必须是整型、字符型。switch switch 语句的工作流程:语句的工作流程:例例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 例: 根据考试成绩的等级“a,b,c,d”,打印出“优”, “良”等评语。#include #include main( )main
10、( ) char char grade; grade; printf( printf(“请输入成绩等级请输入成绩等级(a,b,c,d)(a,b,c,d):”);); scanf(scanf(“%c%c”, &grade); , &grade); switch switch(greade)(greade) case case a a: printf(: printf(“优秀优秀nn”);); break;break; case case b b: printf(: printf(“良好良好nn”);); break;break; case case c c: printf(: printf(“中
11、等中等nn”);); break;break; case case d d: printf(: printf(“差等差等nn”);); break;break; default default: : printf( printf(“ 输入错误输入错误n n ”);); lcase后可包含多个可执行语句,且不必加后可包含多个可执行语句,且不必加 l多个多个case可共用一组执行语句可共用一组执行语句如:如: case A: case B: case C: printf(“score60n”); break; .例: 根据输入的月份值,打印出1998年的某月有多少天。 case 9: case 1
12、1: day=30; break; case 2: day=28; break; default: day=-1; if ( day!=-1) printf(“1998年的%d月有%d 天”,mouth,day); else printf(“月份输入错误!n”); #include main( ) int month; printf(“请输入月份:”); scanf(“%c”, &mouth); switch(mouth) case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 4: case 6: 结束结束