选择结构程序设计PPT课件
一直这样做下去
真
表达式3 假 直到得出最后结果
真
语句1
语句2
语句3
语句4
上一页
下一页
方法三:语句1与语句2都为if语句
#include<stdio.h> main( ) { float x,y;
scanf(“%f”,&x); if(x<=0)
if(x>= -10) y=2+x; else y=2*x; else if(x<=10) y=x-2; else y=x/10; printf(“\ny=%f”,y); }
教学重点:
if语句、嵌套程序。
上一页
下一页
很多问题是顺序结构解决不了的
看这样一个例子:
计算分段函数
x<0
Y
N
y=3-x y=2x
N-S图
x在大于等于0和小于0两种不同的情况时,函数 将用不同的表达式来求y的值,这时就需要在计 算y的值之前,先对x的值进行判断,C语言中用 选择语句来实现这一判断。算法N-S图如右上图 所示。
0
语句1_1
语句1_2
非0
语句2_1
语句2_2
上一页
下一页
说明: if后面的表达式类型任意
语句可以是复合语句 如:if(ifx()a==b&if(&xx!==0=)y) printf(“a=b,x=y”);
if(if!(x3)) priinf(tfx(=“=O0K)”); 例 考i虑f(‘下a’)面p程ri序ntf的(“%输d出”,结’a’果); :
上一页
下一页
练习:编程实现,从键盘输入一个字符,如果是 字母,则输出对应的ASCII码,否则,输出“%”。
main()
{char a;
scanf("%c",&a);
if( a>='A'&&a<='Z'||a>='a'&&a<='z'
)
printf(“%d \n",a);
else
printf(“ %% \n");
第4章 选择结构程序设计
4.1 关系运算符与关系表达式 4.2 逻辑运算符与逻辑表达式 4.3 if语句 4.4 switch语句 4.5 结构嵌套程序举例
(其中4.1、4.2两节已在第二章中详细介绍,此处 不再赘述。)
上一页
下一页
教学目的和基本要求:
要求学生掌握选择结构程序设计, 嵌套程序设计,学会运用if语句及 switch语句。
if(x>10) y=x/10;
printf(“\ny=%f”,y);
}
上一页
下一页
方法二:用if语句做语句2
#include<stdio.h> main( ) { float x,y;
scanf(“%f”,&x); if(x<=-10) y=2*x; else if(x<=0) y=2+x;
else if(x<=10) y=x-2; else y=x/10;
这种用if语句作为上一层if语句的语句1和语句2 的结构,称为if语句的嵌套。
上一页
下一页
if 语句的二层嵌套结构如下:
if ( 表达式1)
if ( 表达式1_2) 语句1_1
else
语句1_2
else
if ( 表达式2_1) 语句2_1
else
语句2_2
非0
表达式1
0
表达式1_2
非0
0
表达式1_2
例:计算分段函数:y= x-2 0<x<=10
x/10 x>10
上一页
下一页
方法一:用简单语句
#include<stdio.h>
main( )
{ float x,y;
scanf(“%f”,&x);
if(x<=-10) y=2*x;
if(-10<x&&x<=0) y=2+x;
if(0<x&&x<=10) y=x-2;
3. (条件表达式)后不要加;
上一页
下一页
例:计算分段函数
main() { float x , y;
scanf(“%f ”, &x); y=2*x; if ( x < 0 ) y = 3 - x ; printf(“y= %.2f”, y ); }
上一页
下一页
例:输入两个数X,Y,如果x大于y,则交换两数。
}
上一页
下一页
if语句的语句1和语句2又称为if的执行语 句。if的执行语句在语法上是一条语句,可以 是任何类型的语句,简单语句、复合语句、 空语句、流程控制语句都可以作为if的执行语 句。
下面我们通过一个例子分别介绍用不同 的语句作为if的执行语句的情形:
2*x x<= -10 2+x -10<x<=0
printf(“\ny=%f”,y); }
这种用if语句作为上一层if语句的语句2的结构, 称为if语句的多分支选择结构。
上一页
下一页
多分支选择语句一般形式:
if (表达式) 语句1
else if (表达式)语句2
假
表达式1
else …
流程图如左:
先判断表达式1的值
真
假
表达式2
为0就执行下一个判断 非0就执行下面的语句
上一页
下一页
C语言中的选择语句有两种:
双分支选择语句 if 多分支选择语句 switch
上一页
下一页
4.3 if语句
1. if语句的最简单形式:
if (条件表达式) 语句;
if (条件表达式) { 语句;
语句;
……}
表达式
真
语句
假
说明:1. 条件表达式的值为1或0,必须用( )括住 2. 若有多条语句(复合语句)时,用{ }括住。
上一页
下一页
例: 输入两个数, 比较其大小, 将较大的数输出。
算法分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) { float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
main() { int x , y;
scanf(“%d,%d ”, &x,&y); if ( x < y ) {
t = x; x = y; y = t; } printf(“x= %d,y=%d”, x,y ); }
上一页
下一页
2. if语句的双分支形式:
if (表达式) 语句1
else
语句2
执行过程: 首先先判断表达式的值 若为非0则执行语句1 若为0则执行语句2
假
表达式
真
语句1
语句2
if语句的双分支形式,在语法上视 为一条语句。
上一页
下一页
例:计算分段函数
main() { float x , y;
scanf(“%f ”, &x); if ( x < 0 ) y = 3 - x ; else y = 2 * x ; printf(“y= %.2f”, y ); }