资源描述
这节讲解分支和循环大家注意了,这是重点:分支就是说选择执行某些语句,而循环就是不停地工作,直到完成这次任务。注意语法规则,这是最后一节了。本章算是结束了,后续我会发出本章总结和大量练习题。
分支语句
1.if 语句
if 语句允许程序通过测试表达式的值从两种选项中选择一种。If语句的最简单格式如下:
用法①:if(表达式)语句
描述:如果表达式为“真”,则执行语句;否则执行if后面的语句。
例子:
if(a>1)
b=10;
用法②:if(表达式)
语句1
else
语句2
描述:如果表达式的结果为“真”,则执行语句1;否则执行语句2。
例子:if (a>1)
b=10;
else
b=100;
用法③:if(表达式1) 语句1
else if(表达式2) 语句2
else if(表达式3) 语句3
。
。
。
。
else if(表达式m) 语句m
else 语句n
描述:如果表达式1的结果为“真”,则执行语句1,退出if语句;否则去判断表达式2,
如果表达式2的结果为“真”,则执行语句2,退出if语句;否则去判断表达式3,
如果表达式3的结果为“真”,则执行语句3,退出if语句;否则去判断表达式3后面的表达式,
。。。。。。。
如果表达式m的结果为“真”,则执行语句m,退出if语句;
否则去执行语句n。
例子:if (a>1) b=10;
else if(a>2)
b=20;
else if(a>3)
b=30;
else if(a>4)
b=40;
else
b=100;
if语句的嵌套
if语句的嵌套是指if语句中又包含了一个或多个if语句
main()
{
float score;
读取你的分数:
scanf("score=%lf",&score);
if(score<=100&&score>=0)
else if(score>=90&&score<=100) printf("A");
else if(score>=80&&score<=89) printf("B");
else if(score>=70&&score<=79) printf("C");
else if(score>=60&&score<=69)
printf("D");
else
printf("E");
}
2. switch语句
switch语句可以产生具有多个分支的控制流程。它的格式是:
switch (控制表达式) {
case 常量表达式: 语句列表
case 常量表达式: 语句列表
...
default: 语句列表
}
例如以下程序根据传入的参数1~7分别打印Monday~Sunday:
switch语句
如果传入的参数是2,则从case 2分支开始执行,先是打印相应的信息,然后遇到break语句,它的作用是跳出整个switch语句块。C语言规定各case分支的常量表达式必须互不相同,如果控制表达式不等于任何一个常量表达式,则从default分支开始执行,通常把default分支写在最后,但不是必须的。使用switch语句要注意几点:
1. case后面跟表达式的必须是常量表达式,这个值和全局变量的初始值一样必须在编译时计算出来。
2. 浮点型不适合做精确比较,所以C语言规定case后面跟的必须是整型常量表达式。
3. 进入case后如果没有遇到break语句就会一直往下执行,后面其它case或default分支的语句也会被执行到,直到遇到break,或者执行到整个switch语句块的末尾。通常每个case后面都要加上break语句,但有时会故意不加break来利用这个特性,例如:
缺break的switch语句
switch语句不是必不可缺的,显然可以用一组if ... else if ... else if ... else ...代替,但是一方面用switch语句会使代码更清晰,另一方面,有时候编译器会对switch语句进行整体优化,使它比等价的if/else语句所生成的指令效率更高。
循环语句
1. while语句
while循环和for循环类似,其格式为:
while (条件语句)
{
语句1 ;
语句2 ;
....
语句n ;
}
执行while时,先测试“条件语句”,如果条件成立,则执行语句1到语句n,直至条件不成立时调处循环。
int i=0 ;
while (i<10)
{
i++ ;
printf("i的值%d\n”,i);
}
2.do…while
do ... while 循环语句的格式为:
do
{
语句1 ;
语句2 ;
....
语句n ;
}
while (条件语句) ;
do ...while 语句的功能是首先执行语句1到语句n,然后进行条件测试,如果条件成立,则继续执行语句1到语句n,否这跳出循环。如:
int test=0;
do
{
test++;
}
while(test<10);
这种控制并不是很常用,但有时却非常重要,使用时注意结尾处while语句后的分号。
3.for 循环
for语句的格式为:
for (初始化语句; 条件语句; 控制语句)
{
语句1 ;
语句2 ;
....
语句n ;
}
for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件成立,则执行语句1到语句n;然后执行“控制”语句;接着再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束for循环。如:
for(i=0;i<10;i++).
printf(“%d”,i);
你可以在for循环的头部说明你的变量,而且最后一个表达式可以省略,不过要确定在语句中对变量的值有所改变,如:
for(int i=0;i<=10;) i+=i;
for循环中,“初始化语句”、“条件语句”和“控制语句”都可以省略,但是其间的分号不能省略。例如:
int i =0 ;
for (; ; ;)
{
if i>10 break ;
i = i +1 ;
}
for循环中省略“条件语句”时,在for语句{}中必须包换转句语句控制程序在某个条件满足时跳出for循环,否则将形成死循环
4.break和continue语句
continue语句也会终止当前循环,和break语句不同的是,continue语句终止当前循环后又回到循环体的开头准备执行下一次循环。对于while循环和do/while循环,执行continue语句之后测试条件语句,如果值为真则继续执行下一次循环;
while (条件语句)
{
语句1 ;
}
int i=0;
while(i<10){
i++;
if(i==5)
continue;
}
printf("%d\n",i);
对于for循环,执行continue语句之后首先计算控制语句,然后测试条件语句,如果值为真则继续执行下一次循环。
for (初始化语句; 条件语句; 控制语句)
int i=0;
for(i=0;i<10;i++){
if(i==5)
continue;
}
Au:[PYG]whypro
QQ:420094850
展开阅读全文