目录
一、分支
if语句
switch语句
二、循环语句
while语句
for语句
do while 语句
即选择结构
语法结构:
int main()
{
if (判断语句1)
{
语句1;
}
else if (判断语句2)
{
语句2;
}
else
{
语句3;
}
return 0;
}
注意:
1.如果if或else下的语句只有一句,就可以不加大括号,但为了保证清晰,建议都加上大括号。
2.else是和它离的最近的if匹配的。(if嵌套时需要注意)
实例演示:
int main()
{
int a = 10;
if (a>15)
{
printf("a>15");
//语句1
}
else if (a<5)
{
printf("a<5");
//语句2
}
else
printf("15>a && a>5");
//语句3
return 0;
}
结果是打印 语句3
有些情景下,使用if...else 语句太过繁杂
比如
输入1,输出一
输入2,输出二
输入3,输出三
输入4,输出四
输入5,输出五
于是我们可以用switch语句
switch(整型表达式)
{
语句项;
}
语句项是用case实现的一种结构
语法结构:
case 整形常量表达式:
语句;
一个switch语句可以有多个case
switch后的整型表达式和case后的整型常量表达式相匹配,并从该case语句往后依次执行
根据具体需求,可以加break语句跳出switch语句
default子句
当 switch 表达式的值并不匹配所有 case 标签的值时
这个 default 子句后面的语句就会执行。
注意:
1.default语句可以出现在switch语句中的任意位置
2.执行语句流时,default下的语句也会像case下的语句一样被执行
同一件事情需要被执行很多次时需要用到循环语句
while(判断条件)
循环语句;
判断条件为真,执行循环语句,然后再回到判断条件进行判断
判断条件为假,则跳出循环
实例演示:(打印数字1-10)
#include
int main()
{
int i = 1;
while (i < 10)
{
printf("%d", i);
i++;//调整判断条件,否则会进入死循环
}
return 0;
}
当然,在while循环里也同样可以使用break跳出循环
比如我想在上面的例子中只打印1-4
注意:while中的break是用于永久终止循环的。
#include
int main()
{
int i = 1;
while (i < 10)
{
printf("%d", i);
i++;
if (5 == i)
break;
}
return 0;
}
当然,在while循环里也同样可以使用continue跳过一次循环
#include
int main()
{
int i = 1;
while (i < 10)
{
i++;
if (5 == i)
continue;
printf("%d", i);
}
return 0;
}
输出结果是 234678910
当i == 5时执行continue语句 会跳过打印i == 5的情况,就不会打印5
语法结构
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1 - 初始化值
表达式2 - 条件判断
表达式3 - 调整,用于循环条件的调整。
执行流程:
实例演示:(打印数字1-9)
#include
int main()
{
int i = 0;
for (i = 1;i < 10;i++)
{
printf("%d", i);
}
return 0;
}
我们对比while和for循环
可以发现在while中依然存在循环的三个必须条件,
但是由于风格的问题使得三个部分很可能偏离较远,
这样 查找修改就不够集中和方便。
所以,for循环的风格更胜一筹;for循环使用的频率也最高。
建议:
1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
2. for语句的循环控制变量的取值采用“前闭后开区间”写法。
在判断条件中,使用前闭后开区间可以提高代码可读性,
比如 for(i = 0;i < 10;i++)可以由i<10看出循环10次
而换成i<=9的9没有任何意义
先执行一次后再进行判断
语法结构
do
循环语句;
while(表达式);
实例演示:(打印1-9)
int main()
{
int i = 1;
do
{
printf("%d ",i);
i++;
} while (i < 10);
return 0;
}
值得注意的是,do while 循环也同样需要循环的三个必须条件,
相较于while不同的是,do while 会先执行一次,再判断
但也因此,适用的场景不多
C语言分支和循环基础就到此,因为作者水平有限,欢迎提出意见或建议