本次课内容:选择型程序设计
教学目的:掌握 if…else else…if
switch结构及应用
重点,if…else else…if
switch结构及应用
难点:结构中的执行方向和应用
预习:选择结构
P
A B
n y P
T F
A B
一, if … else 结构的应用
格式 1,if ( 条件 ) 语句 1
功能:如果条件为真,执行语句 1,否则,执行下一语句。
如,
#include <math.h>
main()
{
int m;
scanf(“%d\n”,m);
if ( m<0) m=fabs(m);
printf(“m=%d\n”,m);
}
输入 m
m取绝对值 m<0 t
f
输出 m
输入 m数据
m<0 T F
m取绝对值
输出 m
N_S
PAD
格式 2,if ( 条件 ) 语句 1
else 语句 2
功能:如果条件为真,执行语句 1,否则执行语句 2。
如,
y=
main()
{
int x,y;
if (x>=0)
y=x+1;
else
y=x-1;
printf(“y=%d\n”,y);
}
?
?
?
?
?
1
1
x
x
X>=0
X<0
输入 X值
X<0 T F
Y=X+1 Y=X-1
输出 Y值
例:将 a,b 两整数交换
,
if ( a<b)
{
t=a;
a=b;
b=t;
}
,
例:三个数中取大数
,
max=a;
if ( c>b)
{
if (c>a)
max=c;
}
else
{
if (b>a)
max=b;
}
,
二,else…if 结构的应用
格式,if (条件 1) 语句 1
else if ( 条件 2)语句 2
else 语句 3
语句 4
功能:条件 1为真,执行语句 1,然后执行语句 4,条件 1 为假,执行
第二个 if…else,条件 2为真,执行语句 2,否则执行语句 3,然后
执行语句 4。
例:求 a,b,c中最大数
,
if (a>b&&a>c) max=a;
else if (b>a&&b>c) max=b;
else max=c;
printf(“max=%d\n”,max);
,
例:求一元二次方程的根。 P74_例 3.6
三,switch结构应用
Switch也称开关语句
格式,
switch (表达式)
{
case 常量表达式 1:语句 1; break;
case 常量表达式 2:语句 2; break;
,
case 常量表达式 n:语句 n; break;
default:语句 n+1
}
功能,表达式的值与各 case的常量比
较,与哪个相等,就进入哪个 case,
由 break跳出开关语句,若表达式
值都与各 case不相等,则执行
default语句。无 break则执行下一
个 case语句。
Main()
{
Int x;
Scanf(“%d\n”,&x);
switch (x%2)
{
case 0,printf(“even”);
break;
case 1,printf(“odd”);
break;
default:break;
}
}
又如,P75_例 3.7
小结,
? If …else 分支
? Else…if 多分支(分支嵌套)
? Switch 开关(多分支)
作业,
P 96_3.1,3,2
教学目的:掌握 if…else else…if
switch结构及应用
重点,if…else else…if
switch结构及应用
难点:结构中的执行方向和应用
预习:选择结构
P
A B
n y P
T F
A B
一, if … else 结构的应用
格式 1,if ( 条件 ) 语句 1
功能:如果条件为真,执行语句 1,否则,执行下一语句。
如,
#include <math.h>
main()
{
int m;
scanf(“%d\n”,m);
if ( m<0) m=fabs(m);
printf(“m=%d\n”,m);
}
输入 m
m取绝对值 m<0 t
f
输出 m
输入 m数据
m<0 T F
m取绝对值
输出 m
N_S
PAD
格式 2,if ( 条件 ) 语句 1
else 语句 2
功能:如果条件为真,执行语句 1,否则执行语句 2。
如,
y=
main()
{
int x,y;
if (x>=0)
y=x+1;
else
y=x-1;
printf(“y=%d\n”,y);
}
?
?
?
?
?
1
1
x
x
X>=0
X<0
输入 X值
X<0 T F
Y=X+1 Y=X-1
输出 Y值
例:将 a,b 两整数交换
,
if ( a<b)
{
t=a;
a=b;
b=t;
}
,
例:三个数中取大数
,
max=a;
if ( c>b)
{
if (c>a)
max=c;
}
else
{
if (b>a)
max=b;
}
,
二,else…if 结构的应用
格式,if (条件 1) 语句 1
else if ( 条件 2)语句 2
else 语句 3
语句 4
功能:条件 1为真,执行语句 1,然后执行语句 4,条件 1 为假,执行
第二个 if…else,条件 2为真,执行语句 2,否则执行语句 3,然后
执行语句 4。
例:求 a,b,c中最大数
,
if (a>b&&a>c) max=a;
else if (b>a&&b>c) max=b;
else max=c;
printf(“max=%d\n”,max);
,
例:求一元二次方程的根。 P74_例 3.6
三,switch结构应用
Switch也称开关语句
格式,
switch (表达式)
{
case 常量表达式 1:语句 1; break;
case 常量表达式 2:语句 2; break;
,
case 常量表达式 n:语句 n; break;
default:语句 n+1
}
功能,表达式的值与各 case的常量比
较,与哪个相等,就进入哪个 case,
由 break跳出开关语句,若表达式
值都与各 case不相等,则执行
default语句。无 break则执行下一
个 case语句。
Main()
{
Int x;
Scanf(“%d\n”,&x);
switch (x%2)
{
case 0,printf(“even”);
break;
case 1,printf(“odd”);
break;
default:break;
}
}
又如,P75_例 3.7
小结,
? If …else 分支
? Else…if 多分支(分支嵌套)
? Switch 开关(多分支)
作业,
P 96_3.1,3,2