C语言分支结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)用两次printf方法实现 (2)用一次printf方法实现
#include <stdio.h>
#include <stdio.h>
main()
main()
{ int a,b;
{ int a,b,max;
scanf("%d%d",&a,&b);
scanf("%d%d",&a,&b);
if(a>b)
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
输入a=1, b=1, c=3 结果输出为:
a!=b
实现if ~ else 正确 配对方法:加{ }
<>
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
else statement3
if (expr1) statement1
else { if(expr3) statement3 else statement4}
<>
else中 内嵌if
if (expr1)
{ if (expr2) else
statement1 statement2}
内嵌if
else
{if(expr3) else
int a,b,m,n; scanf(“%d, %d”,&a, &b); m=1; n=1; if (a>0) m=m+n; if (a<b) n=2 * m; else if (a==b) n=5; else n=m+1; printf(“m=%d, n=%d\n”, m,n); }
<>
问: (1)当输入为:-1,-2<回车>时, 程序的运行结果是什么? (2)当输入为:1,0<回车>时, 程序的运行结果是什么?
printf("a!=b\n"); }
<>
运行:Enter integer a:12 Enter integer b:12 a==b
运行:Enter integer a:12 Enter integer b:9 a!=b
3
( C语言程序设计)
第 4 章 选择型程序设计
例 3 输入两个整数,并显示较大的数字。
答: (1)当输入为:-1,-2<回车>时, m=1 n=2 (2)当输入为:1,0<回车>时, m=2 n=3
13
( C语言程序设计)
§4.4 switch语句
执行过程:
switch
表达式 case
E1
E2
En default
语句组1 语句组2 …... 语句组n 语句组
<>
第 4 章 选择型程序设计
if(c < 0x20)
printf("The character is a control character\n");
else if(c >= '0'&& c <= '9')
printf("The character is a digit\n");
else if(c >= 'A'&& c <= 'Z')
结果:-1
11
<>
( C语言程序设计)
例4-10 求3个整数的最大值
第 4 章 选择型程序设计
main()
main()
{ int a = 100, b= 10, c = 20; { int a = 100, b= 10, c = 20;
int max;
if(a >=b&&a>=c)
max=a;
printf(“%d”,a);
else if( expr3)
{语句组3;}
…… [ else
{语句组n;} ]
执行过程:
第 4 章 选择型程序设计
expr1 非0
statemnt1
=0 expr2
非0
statemnt2
=0
expr3 非0 statemnt3
=0 statemntn
(1)if语句允许嵌套: 所谓if语句的嵌套是指,在“语句组1”或 “语句组2”中又包含有if语句的情况。
…………....
15
<>
( C语言程序设计)
第 4 章 选择型程序设计
(2)if语句嵌套时,else子句与if的 匹配原则:与在它上面、距它最近、且尚未匹配的if配对。书写时注意形成层次;
(3)为明确匹配关系,避免匹配错误, 强烈建议:将内嵌的if语句,一律用花括号括起来。
5
<>
( C语言程序设计)
第 4 章 选择型程序设计
if … else 配对原则
else总是和它上面离它最近的未配对的if配对
7
( C语言程序设计)
第 4 章 选择型程序设计
如:if(a==b&&x==y) printf(“a=b,x=y”); if(3) printf(“OK”); if(‘a’) printf(“%d”,’a’);
说明:
if后面的表达式类型任意 if …. else…相匹配
Compile Error!
statement3 statement4}
内嵌if
9
( C语言程序设计) 例4-8 判断输入字符种类
第 4 章 选择型程序设计
#include <stdio.h>
main()
{ char c;
运运行运运行:行运行:E:行:ntEEe:EnrnntEateetnrecrrthaaearccrhcahhacacratrheararacc:rtcteaetrecr:rt:e:rF:D1h8
=0 statement2
}
ຫໍສະໝຸດ Baidu
1
<>
( C语言程序设计)
例4-7 求一个数的绝对值
第 4 章 选择型程序设计
运运行行::EEnntteerr aann iinntteeggeerr::-1122
#include <stdio.h>
main()
iinntteeggeerr::-1122------>>aabbssoolluutteevvaalluuee::1122
例:if (salary>1000) index=0.4i;f(……) 例:if (salary>1000)
else
if(……)
index=0.4;
if (salary>800) index=0.3; if(……) else if (salary>800)
else if (salary>600)
index=0.2e;lsee…ls.e.…. ...
if(a>b)
printf(“%d\n“,a);
max=a;
else
else
printf((“%d\n“,b);
max=b;
}
printf((“%d\n“,max);
}
其他方法???
4
<>
( C语言程序设计)
形式三: 格式: if (expr1)
{语句组1;}
else if( expr2)
{语句组2;}
printf("Enter a character:"); c = getchar();
ThTeThhceehTcachrhaearccarthacectraetrierasrciastiescoraotihnscletoaarwpocdilehtiacrgalhilrtealetrctateecrrter
index=0.3; else if (salary>600)
else
index=0.2;
if (salary>400) indeexl=se0….1; ...
else if (salary>400)
else index=0;
index=0.1;
else
index=0;
6
<>
( C语言程序设计)
第 4 章 选择型程序设计
{ int x,y;
printf("Enter an integer:");
scanf("%d",&x);
y=x;
if(y<0)
y= -y;
printf("\ninteger:%d--->absolute value:%d\n",x,y);
}
2
<>
( C语言程序设计)
第 4 章 选择型程序设计
例 2 输入两个整数并判断两数相等否
如如:: ………… ccaassee ‘‘AA’’:: printf(“score>90\n”); case ‘B’: printf(“good!\n”); ccaassee ‘‘BC’’:: case ‘C’:pprrinintftf((““ssccoorere>>606\0n\”n)”;);
break;
printf("The character is a capital letter\n");
else if(c >= 'a'&& c <= 'z')
printf("The character is a lower letter\n");
else
printf("The character is other character\n");
}
10
<>
( C语言程序设计)
第 4 章 选择型程序设计
例4-9 考虑下面程序输出结果: main() { int x = 100, a= 10, b = 20; int v1 = 5, v2 = 0; if(a < b) if(b != 15) if(!v1) x = 1; else if(v2) x = 10; x = -1; printf(“%d”,x); }
式(即去掉花括号{语)句。组1;}
statement
执行过程: 例:例:if (x>y)
形式二格执iefl(s:行式eex过:p{{语r语e程s句句s:io组组n)21;;}}iefls(exmm>yaaxx) =={}e{xyls;;epppprrrriiiinnnnttttffff((((““““最%最%stdd大a大\t\nen值值m””非,,xye为为n))0;;t::1 ””e));x;pr
例例#考考inc虑虑lu下下de面面<s程程tdi序序o.h的的>输输出出结结果果:: #minacilnu(d)e <stdio.h> {maiinnt(x) ,y; { isnctaxn,fy(“;%d,%d”,&x,&y); sifc(axn>fy(“) %d,%d”,&x,&y); if(xx>=yy); xy==yx;; y=x; eellssee xx++++;; y++; priyn+tf+(“; %d,%d\n”,x,y);
}
语句组 ;
break;]
}
14
( C语言程序设计)
第 4 章 选择型程序设计
说明:
E1,E2,…En是常量表达式,且值必须互不相同 case后可包含多个可执行语句,且不必加{ } 多个case可共用一组执行语句
语句标号作用,必须用break跳出 如果无break,找到入口后,将继续执行下去,不 再进行判断;
} printf(“%d,%d\n”,x,y);
}
8
<>
( C语言程序设计)
if语句嵌套: 一般形式:
if (expr1) { if (expr2) statement1 else statement2}
内嵌if
第 4 章 选择型程序设计
if (expr1) { if (expr2) 内嵌if statement1}
if(b>max)
else
max=b;
{ if(b>c)
else
printf(“%d”,b);
max=c;
else
printf(“%d”,max);
printf(“%d”,c);
}
}
}
12
<>
( C语言程序设计)
课堂练习
第 4 章 选择型程序设计
[1]阅读下列程序,回答问题: #include <stdio.h> void main() {
#include <stdio.h> main() { int a,b;
printf("Enter integer a:"); scanf("%d",&a); printf("Enter integer b:"); scanf("%d",&b); if(a==b)
printf("a==b\n"); else
( C语言程序设计)
第 4 章 选择型程序设计
§4.3 分支 语句
if语句的三种形式
( ( (231)))e当ilfsi语形ef子和句式句e格中ifl一(是s的式ee:x下i“:pfr面语e表ss的句达io例语的式n):一句”组部必if ,分须(xp,仅用>ryi必由“n)t一须(f”(和“与条%“语ifd)配句””,括x对构)起;成使来时用。,,也不exp可能非r 不单0 使独用使=0复用合。语句形
switch( 表达式)
{ case E1: switch( 表达式语)句组 1;
{ case Eb1:reak; case 语E句2:组 1;
case E语2:句组 2; 语b句re组ak2; ;
…………. .
ccaasese EnE:n: 语语句句组组n;n;
[default:break; [defau语lt:句组 ;]