当前位置:文档之家› C语言控制语句

C语言控制语句

if(area>100) break; printf(“%f”,area); }

控制语句

控制语句

控制语句
} continue语句
} 结束本次循环,接着判定下一次是否执行循环。 } continue与break的区别:

案例
for (;;) {
main_loop (); } //board.c

控制语句
} break语句
} 用于从循环体内跳出循环体,即提前结束循环。 } break只能用在循环语句和switch语句中.
for(r=1;r<=10;r++) { area=pi*r*r;

案例
switch (info->flash_id & FLASH_TYPEMASK) { case (AMD_ID_LV400B & FLASH_TYPEMASK): printf ("1x Amd29LV400BB (4Mbit)\n"); break; case (AMD_ID_LV800B & FLASH_TYPEMASK): printf ("1x Amd29LV800BB (8Mbit)\n"); break; default: printf ("Unknown Chip Type\n"); goto Done; break; }
for(;;) sum=sum+i;
循环将无休止的执行下去.

控制语句
} 注意:
} for语句中的<表达式1>、<表达式2>、<表达式3>皆可省 略,但相应的分号不可省略;
} for(; ;) } <循环体> } 表达式2略去时,此项求值总为真,除非循环体中有跳转
语句(如:break,goto,return),否则此循环为死循环。

控制语句
} 注意:
} 语句块:当有若干条语句时,必须用{…}括起来。 } 表达式:
} if语句的表达式一般情况下为逻辑表达式或关系表达式。
¨ 如:if(a= =b && x= =y) printf(“a=b,x=y”);
} 也可以是任意类型(包括整型、实型、字符型、指针类型)
控制语句
} while语句构成循环
100
例如:求 ∑ n int main() n=1
{
int i=1,sum=0; while (i<=100){
sum=sum+i; i++; } printf(“%d”,sum); return 0; }

控制语句
} do-while语句构成循环 100 例如:求 ∑ n n=1
控制语句
} for语句构成循环
} for语句中的表达式1可以省略,但在for循环之前应给循 环变量赋值.
例如:i=1;for(;i<=100;i++) sum=sum+i;
} 表达式2也可以省略,但循环将陷入死循环.
例如:for(i=1;;i++) sum=sum+i;
} 表达式3也可以省略,但应在循环体中增加使循环变量值 改变的语句.

控制语句 } 使用:
} switch中的表达式可以是整型或字符型表达式 (也可以是枚举类型,新标准的c语言允许为任意类型.) } 每个常量表达式的值必须各不相同,否则将会出现矛盾。 } 当表达式的值与case后面的常量表达式值相等时就执行此case后
面的语句。 } “case 常量:”只起语句标号的作用。
例如:for(sum=0,i=0;i<=100;) { sum=sum+i; i++;}

控制语句
} 表达式1和表达式3同时省略也允许,
例如:i=1;sum=0; for(;i<=100;) {sum=sum+i; i++;}
这是完全与while循环等同. } 三个表达式都可以省略,但“;”不能省略。
for(expression1; expression2; expression3) {
statements; }

控制语句
} for语句构成循环
100
} 例如:求 ∑ n 将变化为: n=1 for(i=1;i<=100;i++) { sum=sum+i; }

} return语句的一般形式:return ( <表达式> ) ;

} 要实行强行的配对关系可以利用{ }
如:
if()
{if() 语句块1} else 语句块2

控制语句
} 条件运算符
} 在if语句中,表达式为真和假时都执行一条赋值语句并且 都是给同一个变量赋值.这时可以把if语句简化为条件运 算符.
} 表达式1?表达式2:表达式3;
if (a>b) max=a;
控制语句
} 各种循环的比较
} 注意while与do_while 循环中(条件)后面的“;”。 } while与do_while执行循环体与判断的顺序不同。 } 各自的应用场合不同。while强调“条件是否满足”do_while强调
“动作的行为” } for语句为非条件循环语句,功能比条件循环要强,也更灵活,凡能

控制语句
} if语句的嵌套
if() if() else
else if() else
语句块1 语句块2
语句块3 语句块4

控制语句
} if语句的嵌套
} if语句中if与else的配对关系为
¨ else总是与它上面的最近的if配对.书写格式的缩进与否与它们之间的配对无 关.
控制语句
} C程序结构
C程序
源程序文件1
源程序文件2
源程序文件n
预编译命令
函数1 ... 函数n
说明部分
执行部分 (语句)

控制语句
} 三种基本结构
} 顺序结构
A
B 流程图
A B
N-S图

控制语句
} 选择结构
} 二分支选择结构


P
A
B
真 P假 AB
int main() { int i,sum=0;
i=1; do{sum=sum+i;
i++; } while(i<=100); printf(“%d”,sum); } } 从上面对一个问题的两种解决方法可以看出: } while循环与do_while循环在绝大多数情况下是可以相互转化的.


控制语句
} 选择结构
} 多分支选择结构
k
k=k1 k=k2
A1
A2 ...
k=kn k=ki
Ai ... An

控制语句
} 循环结构
} 当型循环结构
假 P
真 A
当P为真 A

控制语句
} 循环结构
} 当型循环结构
A
假 P 真
else max=b;
à
max=(a>b)?a:b;

控制语句
} 条件运算符
} 条件运算符的执行顺序
} 先求表达式1,若为真则求解表达式2,整个表达式的值为表达式2的值;若 表达式1的值为假则求解表达式3,整个表达式的值为表达式3的值.
} 比较条件运算符与其他运算符的优先级别和结合性 } 条件表达式中表达式1的类型可以与表达式2和表达式3的

控制语句
} break语句在switch中的作用:强行跳出switch体转到其它某条 语句,每个case后面应有一个break语句(否则程序的执行顺序 将改变),default分支后的break可以省略。
} 各个case出现的先后顺序不影响程序的执行结果. } 多个case可以执行一组语句.
控制语句
课程目标
} 了解顺序语句,分支语句,循环语句 } 掌握if~else语句的使用 } 掌握switch语句的使用 } 掌握while语句的使用 } 掌握do~while语句的使用 } 掌握for语句的使用 } 掌握return,break,continue语句的使用

100
求 ∑n n=1
#include <stdio.h> int main() { int i, sum=0;
运行结果为:5050
i=1; loop :if (i<=100)
{
sum=sum+i;
i++;
goto loop;
} printf(“%d”,sum);
return 0;
}

A 直到P为真

控制语句
} if语句
} if (表达式) 语句块1
else 语句块2
} 常见形式
} 1)简化形式
if(表达式) 语句块
} 2)阶梯形式 } 3) 嵌套形式
例如: if(x>y) printf(“%d”,x);

控制语句
if(表达式1) 语句块1 else if(表达式2) 语句块2 else if(表达式3) 语句块3 else if(表达式4) 语句块4 ... else 语句块n
类型不一致.表达式2与表达式3的类型也可以不一致

控制语句
} switch语句
switch (表达式) { case 常量表达式1:语句块1;break;
case 常量表达式2:语句块2; break; ….
case 常量表达式n:语句块n; break; default :语句块n+1 }
相关主题