C语言程序设计教案 第五章 选择结构程序设计
第五章 选择结构程序设计
第五章 选择结构程序设计教学目的:1、掌握实现选择结构的两种语句、一个运算符
2、学会编写选择结构的程序教学重点:
教学难点:if-else语句、switch语句、条件运算符嵌套if-else语句中的if与else匹配问题步骤一 复习引导
上一次课已经介绍了程序基本结构之一,但在大多数情况下都要用到选择结构。
?
步骤二 讲授新课
在C语言中实现选择结构的控制语句主要有if语句、switch语句
一、条件语句
1、if语句的三种形式
语法1:if (表达式)语句;
如:#include
main( )
{ char ch; ch=getchar();
if(ch>’a’&&ch<=‘z’) ch+=‘A’-’a’;
putchar(ch);
}
语法2:if (表达式) 语句1;
else 语句2;
如:#include
main()
{ int a,b;
scanf (“%d%d”,&a,&b);
if(a>b) printf(“max=%d\n”,a);
else printf (“max=%d\n”,b);
}
语法3:if (表达式1) 语句1;
else if (表达式2) 语句2;
else if (表达式3) 语句3;
……
else 语句n+1;
例如:从键盘上输入字符,判别其分类:控制符、数字、大写字母、小写字母、其他字符。
#include “stdio.h”
main( )
{ char c;
c=getchar( );
if (c< 32) printf(“This is a control character.\n”);
else if (c>=‘0’&&c<=‘9’) printf (“This if a digit.\n”);
else if (c>=‘A’&&c<=‘Z’) printf (“This is a capital letter.\n”);
else if (c>=‘a’&&c<=‘z’) printf (“This is a small letter.\n”);
else printf (“This is an other charater.\n”);
说明:
1、三种形式的 if 语句中,if 关键字后均为表达式(逻辑表达式、关系表达式、赋值表达式、变量等); 如:if (a=5) 语句; if (b) 语句;
?2、if 语句中,条件表达式必须用括号括起来,在语句后必须加分号;
?满足条件需执行一组语句时,该组语句必须用{ }括起来;如:if (a+b>c&&b+c>a&&a+c>b) { s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%6.2f\n”,area); } else printf(“It is not a trilateral.”);
?3、if 语句嵌套时,else 总是与它最靠近的if 匹配;如:有一数学函数:x<0时,y=-1;x=0时,y=0;x>0时,y=1编写程序,输入x的值,输出相应y的值
?main( )
{ int x,y;
scanf(“%d”,&x);
if (x<0) y=-1;
else if (x= =0) y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y);}
??说明:因为if 语句执行时总是简单地测试其中作为条件的“表达式”的值是0还是非0,便可利用这种特性来简化程序设计。如对于:
if (expression!=0)
完全可用 if (expression) 来代替;
同理: if(!exp)语句;等价于:if(exp= =0) 语句;
二、三目条件运算符及其表达式
1、条件运算符:?:
2、格式:e1?e2:e3
3、语义:判e1的值,为1时计算e2,否则计算e3;
如:max=(a>b)?a:b 等价于 if (a>b) max=a;
else max=b;
4、说明:
条件运算符的结合方向自右至左如:a>b?a:c>d?c:d