一.循环结构
1.使用循环结构可以多次重复的执行多条语句,这里的多条语句称为循环体,C语言中有三种循环结构
(1)while循环
只要控制表达式为 true,while 循环就会反复地执行语句:
while(表达式)
{
语句
}
while 表达式是顶部驱动(top-driven)的循环:先计算循环条件(也就是控制表达式)。如果为 true,就执行循环体,然后再次计算控制表达式。如果控制表达式为 false,程序跳过循环体,而去执行循环体后面的语句。
(2)for循环
和 while 一样,for 循环也是一个顶部驱动的循环,但是它包含了更多的循环逻辑,如下所示:
for(表达式1;表达式2;表达式3)
{
语句
}
在一个典型的 for 循环中,在循环体顶部,下述三个动作需要执行:
a. 表达式 1:初始化
只计算一次。在计算控制表达式之前,先计算一次表达式 1,以进行必要的初始化,后面不再计算它。
b.表达式 2:控制表达式
每轮循环前都要计算控制表达式,以判断是否需要继续本轮循环。当控制表达式的结果为 false,结束循环。
c.表达式 3:调节器
调节器(例如计数器自增)在每轮循环结束后且表达式 2 计算前执行。即,在运行了调节器后,执行表达式 2,以进行判断。
for 循环头部中的三个表达式可以省略一个或多个。
(3)do…while循环
do…while 循环是一种底部驱动的循环:
do
{
语句
}while(表达式);
在控制表达式被第一次计算之前,循环体语句会首先被执行一次。与 while 和 for 循环不同,do…while 循环会确保循环体语句至少执行一次。如果控制表达式的值为 true,那么另一次循环就会继续;如果是 false,则循环结束。
二.条件分支结构
1.条件分支结构
(1) if结构
a.单重if结构:先判断后执行
if(条件为真)
{
//代码块1
}
else
{
//代码块2
}
b.多重if结构:常用来进行区间判断
if(条件1)
{
//代码块1
}
else if(条件2)
{
//代码块2
}
else
{
//代码块3
}
(2)switch结构
1.switch(表达式)
{
case 常量1:
语句1;
break; //跳出整个switch结构
case 常量 2:
语句2;
break;
…
default:
语句;
}
2.注意点
(1)switch后的表达式只能是整型或字符型。
(2)case后常量表达式的值不能相同。即case1,case2的1、2不能取一个数。
(3)case后允许多条语句,不需要大括号。即可写多个printf语句。
(4)如果不添加break语句,需要特别注意执行顺序。即会输出该条及之后的所有语句,直到碰到break。
(5)case和default子句的先后顺序可以自动变动。
(6)default子句可以省略。
3.switch和多重if的对比
(1)相同点:
都是用来处理多分支条件的结构。
(2)不同点:
a. switch:等值条件判断-条件是有限个的时候。
b.多重if:判断某个连续区间时的情况。