C控制语句
1.选择语句
(1)if语句
常规格式:
if (表达式)
{
语句;
}
·表达式是要判断的条件,跟在后面的是一个或一组语句
·在if后的语句不止一个,应用大括号{}将他们组织起来。这样的组会称为“复合语句”或“代码块”。如果只有一个语句,大括号{}可以省略,但不建议。
语法形式:
if(表达式)
{ 语句-1; }
else
{ 语句-2; }
·如果 if 表达式的值为true(非0),将执行 if 语句(一个或一组)后的语句块
·如果 if 表达式的值为false(0),那么控制权将交给else 表达式后面的语句
·else语句是可选的.仅当 if 表达式的值为false时,才会执行else后的语句或语句序列
(2)switch语句
通用语法:
switch(a)
{
case 常量1:
语句集;
break;
case 常量2:
语句集
break; ……
default:
语句集;
break;
}
·switch 语句是一种多路判定语句,它判断表达式的值是否与整数或字符常量列表中的某个值相匹配 若找到了相应的匹配,就会执行与常量关联的语句
·switch、case、和default都是关键字,语句可以是简单或复合语句。
·switch后的表达式需要用圆括号括起来,而且switch语句的主题用{ }括起来
·计算表达式的数据类型要与指定的case常量的数据类型匹配。
·switch后的表达式可以包含任何变量名,也可以是常量。
·case后面只能是常量(整型和字符型)。
(3)区别
在上面的程序中,如果表达式与其中的一个case标记匹配,switch语句是很有用的
不能用来判断一个值是否在指定的范围内, 这种情况下还是使用if-else 语句
2.循环语句
(1)for循环
for循环的通用语法:
for(初始化计数 ; 条件测试 ; 再求值参数)
{
语句;
}
初始化计数是一个赋值语句,它在进入循环前设置循环控制变量
条件测试是一个关系表达式,它决定何时退出循环
再求值参数定义每次执行循环时,循环控制变量如何变化 for 循环的三个部分必须用分号 ; 隔开
组成循环体的语句可以是单个语句,也可以是复合语句
工作原理:
1、初始化计数,给循环变量赋初始值。
2、条件测试,求值结果为 true,就执行循环体内的代码执行。当条件变为 false时退出循环,程序将继续执行 for 循环后面的语句
3、循环变量变化计算
4、重复第二步条件测试
补:逗号运算符优先级最低 表达式被逗号运算符隔开,从左向右求值。但只有其最右端的表达式的结果,作为整个逗号表达式的结果 通过在for循环中包含多个初始化表达式或增量表达式,可以丰富for循环中表达式
(2)while循环
通用语法:
while(表达式)
{
语句;
}
表达式一般为关系表达式或者逻辑表达式
语句可以是空语句、一个简单的语句或语句块
如果while循环中包含一组语句,必须用{}括起来
只要条件为真循环就会迭代
(3)do......while
通用语法:
do
{
语句;
}while(表达式);
while后面的分号不能省略
do...while 循环中,循环体中的代码在条件测试执行前执行一次
条件为 False 时,do while 循环终止;控制权传递给紧跟在 while 语句之后的语句
(4)区别
while和for语句先判断循环控制条件,do-while语句后判断循环控制条件,所以,while和for语句的循环体可能一次也不执行,而do-while语句的循环体至少也要执行一次。
三种循环可以处理同一问题,一般情况可以互相代替。但在实际应用中,我们要根据具体情况来选用不同的循环语句。选用的一般原则如下:
如果循环次数在执行循环体之前就已确定,一般用for语句;
如果循环次数是根据循环体的执行情况确定的,一般用while语句或者do-while语句。
当循环体至少执行一次时,用do-while语句;
反之,如果循环体可能一次也不执行时,用while语句。
3.其他控制语句
(1)return语句
通用语法 return 名称;
表达式是可选的
return 语句用于从函数中返回
return 语句可以带有值,该值将返回给调用程序它使执行返回到调用函数的位置
一个函数中可以使用多个return语句,但是遇到第一个return语句时返回
(2)goto语句
通用语法 goto label名;
需要在函数中某行代码处,定义一个标签
goto 语句将控制权传递给C程序中同一函数内的其他语句
它实际上违背了严格的结构化程序设计语言的原则
它们降低了程序的可靠性,并使得程序难以维护
(3)break语句
通用语法 break;
用于在 switch 语句中终止case, 也可以用于在循环中突然终止循环
当循环中遇到 break 语句时,循环立即终止,控制权传递给循环之后的语句
多层循环中,break只向外跳一层
(4)continue语句
通用语法 continue ;
continue 语句,只能在循环中使用让封闭循环进行下一次迭代
遇到该语句时,跳过循环体中剩余的语句,控制权传递给重新初始化步骤
在while循环和do…while循环中,程序控制权传递个条件测试语句
在for循环中,continue影响循环的增量部分,然后执行条件测试
(5)exit()函数
通用语法 exit(int return_code) ;
exit() 用于跳出一个程序
是一个标准库函数
该函数的用途是立即终止程序,控制权交给操作系统