C语句及流程控制.ppt
文本预览下载声明
第三章 语句和流程控制 ;3.1 C语句概述 ;3.2 基本语句 ;(3)说明语句
说明语句包括变量定义语句和变量说明、函数说明、结构说明等。例如:
int x,y,z=3; 定义x,y,z为整型变量
static int w ; 定义w为静态整型变量
int max(); 定义max是整型函数
struct student stu; 定义stu是结构体类型变量
;3.3 复合语句 ;main()
{ int a,b;
scanf ("%d %d",a,b);
if (ab)
{ int t;
t = a;a = b;b = t;
}
printf ("%d%d\n",a,b);
}
在C语言中,每个变量都有其作用域,作用域为从定义它的地方开始,到同一层对应的右括号结束。即使外层中定义了与它同名的变量,内层中出现的该名字意味着内层变量起作用,而外层变量的访问被阻塞。关于变量的作用域,在第5章将会详细讨论。 ;3.4 控制语句 ;3.4.2 选择结构
选择结构如图3-2(b)所示。条件P成立则执行A语句,否则执行B。A、B只能执行一个,A、B的出口路径汇合在一起。
3.4.3 循环结构
循环结构分为当型循环和直到型循环结构,如图3-2(c)(d)所示。当型循环结构先判断P是否为真,若为真执行A;再判断P是否为真,若为真再执行A,如此反复,直到P为假。直到型循环结构先执行A,再判断P是否为假,若P为假再执行A,如此反复,直到P为真。
下面各节将基于上面各种结构分别介绍它们所对应的语句。 ;3.5 分支结构程序设计语句 ;再看第(2)种形式:
if (表达式) 语句S1
else 语句S2
当表达式的值非0,执行语句S1,否则执行语句S2。流程如图所示。;2.if语句的嵌套
if语句的嵌套是指在if语句中又包含了一个或多个if语句。一般形式如下:
if (表达式)
if(表达式) 语句1
else 语句2
else
if(表达式) 语句3
else 语句4
说明:
(1)?????? if与else是配对关系,else总是与它上面最近的if配对。
(2)?????? 可用复合语句来改变配对关系。如:
if (表达式)
{
if(表达式) 语句1
}
else
if(表达式) 语句3
else 语句4
对if语句的嵌套层数c语言没有限制。 ;3.5 分支结构程序设计语句 ;【例】用户从键盘键入+、-、*和/中的任意??个,屏幕上出现对应的英文单词plus,minus,multiply,divide。若按了其他键,屏幕上出现问号。
#inlclude "stdio.h"
main()
{
int c;
c = getchar();
if(c = = + ) printf("plus\n");
else if (c = = - ) printf("minus\n");
else if (c = = ? ) printf("multiply\n");
else if (c = = / ) printf("divide\n");
else printf("?\n");
}
;3.switch语句(开关语句)
switch语句用于多路选择转向的程序中,也就是多路分支结构的程序。前面曾用多重的if-else 语句来表示多路选择转向,现在用switch语句来实现更为清楚简明。
switch 语句的一般形式:
switch (表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
case 常量表达式n:语句n
default: 语句n+1
}
;关于switch语句的相关说明:
(1) switch后面括号内的表达式,可以是整形表达式、字符型表达式,也可以是枚举型数据,且必须与case后的常量表达式的类型一致;
(2) case和default后的语句可以是任意语句,不必用花括号括起来构成复合语句,会自动顺序执行本case后面的可执行语句;
(3) case和default相当于语句标号,当表达式的值与某个case 后面常量表达式的值相等时,就从该case后面的语句开始执行,直到遇到break语句或switch语句结束。如果所有的常量表达式的值都没有与表达式的值匹配,就从default后面的语句开始执行,直到遇到break语句或执行到switch语句结束。在没有default语句时,什么
显示全部