c语句可分为一下五类
1.表达式语句
2.函数调用语句
3.控制语句
4.复合语句
5.空语句
本章后面介绍的是控制语句。
控制语句:用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。
分类:
单分支
if(表达式)
语句;
双分支
if(表达式)
语句1;
else
语句2;
多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
解释一下:
如果表达式的结果为真,则语句执行。
在C语言中如何表示真假?
0表示假,非0表示真
else具有就近原则
例子(坑)
#include
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
改
//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#include
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
//1.每个分支结果不同
switch(整型表达式)
{
case 整形常量表达式:
语句;
break;
case 整形常量表达式:
语句;
break;
.........
default:
语句;
break;
//2.几个分支结果相同
#include
//switch代码演示
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
case是分支开始标志
break是分支结束的标志;在没有break时语句将一直进行下去。
编程好习惯
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。
while
for
do while
while(表达式)
{
语句
}
例子
#include
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
①和②
③和④
③contine————是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
图解
已有while循环,为什么还要一个for循环呢?
for(表达式1;表达式2;表达式3)
{
循环语句;
}
表达式
表达式1为初始化部分,用于初始化循环变量。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。
for(初始化部分,判断部分,调节部分)
while循环和for循环的区别
区别1:
for循环条件集中,while循环条件分散。
区别2
”i++“的位置不同,导致continue在for循环的结果和while的结果不同
原因:判断条件:for循环中有i++,而while循环中没有。
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab8dcdd1066e4e6db6de676a100c30ee.png
for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
但是还是有些差异:见(区别2)
图解
建议
-1.不可在for循环体内修改循环变量,防止for循环失去控制。
-2.建议for语句的循环控制变量的取值采用“前闭后开”的写法。
for循环中的初始化部分,判断部分,调节部分都可以省略的。
如果把判断语句部分省略了,就意味着判断恒为真。——>使循环变为死循环
建议不省略。
1.初始化部分,判断部分,调节部分都可以省略的
#include
int main()
{
for(; ;)
{
printf("hehe\n");
}
do
循环语句;
while(表达式);
循环至少执行一次,使用的场景有限,所以不是经常使用。
#include
int main()
{
int i = 1;
do
{
if(5 == i)
break;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
#include
int main()
{
int i = 1;
do
{
if(5 == i)
continue;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}