目录
一、语句
C语言中,由一个分号隔开的就是一条语句。比如:
printf("hehe\n");
1+3;
二、分支语句
分支语句是一个选择结构,比如中考过后,一部分学生去了技校,成为了一名手艺人发家致富,另一部分学生上了高中,读了大学成为一名学者,为科研事业做贡献,这就是选择。
if语句
如果表达式为真,则语句执行。C语言中,0表示假,非0表示真。
语法结构:
单语句执行:
1)if(表达式)
语句;
2)if(表达式)
语句1;
else
语句2;
3)if(表达式)
语句1;
else if(表达式)
语句2;
else
语句3;
多语句执行:
执行多条语句时,应该使用代码块,下方示例中一对{}就是一个代码块
#include<stdio.h>
int main()
{
if(表达式)
{
语句列表1;
}
else
{
语句列表2;
}
return 0;
}
if书写形式的对比
//形式1
if (condition)
{
return x;
}
return y;
//形式2
if (condition)
{
return x;
}
else
{
return y;
}
两个相同结果的代码,形式二更容易理解逻辑更加清楚,也不容易出错。
练习
详情见博主的C语言基础:分支语句与循环语句(练习篇)
1.判断一个数是否为奇数
2.输出1-100之间的奇数
switch语句
switch语句也是一种分支语句,常常用于多分支的情况。
比如:
语法结构:
switch(整形表达式)
{
语句项:
}
语句项:
switch语句中的break
switch语句中,无法直接实现分支,需要搭配break实现真正的分支。
以上方输出星期几为例:break把语句列表划分成不同的分支。
小贴士:
记得在最后一个case语句后面加上一条break语句。
default子句:
小贴士:
养成良好的习惯,在每个switch语句中都放一条default语句,甚至可以在后边加上一个break。
三、循环语句
下图就是一个简单的循环:
while循环
语法结构:
while(条件表达式)
循环语句:
执行流程:
举例:使用while循环打印1-10的数字
while语句中的break和continue:
break:循环中只要遇到break,就会直接终止循环。所以while中的break就是用于永久终止循环的。
continue:continue时用于终止本次循环,本次循环continue后的代码不会执行,直接跳转到while语句的判断部分,进行下一次循环的入口判断。
for 循环
语法结构:
for (表达式1; 表达式2; 表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量;表达式2为条件判断部分,用于判断循环时候终止;表达式3为调整部分,用于循环条件的调整。
举例:使用for循环打印1-10的数字
i = 1为初始化部分, i<=10为判断部分 ,i++ 为调整部分
执行流程:
for循环与while循环的比较:
不难看出,while循环仍然包括循环的三个必须条件,但偏离较远,查找修改不如for循环集中和方便,因此for循环使用的频率较高。
for循环中的break与continue
for 循环中的break和continue与while循环中的break和continue的意义是相同的,但是for循环中的continue会跳过后面的代码,进入调整部分,不容易造成死循环。
小贴士:
1.不要再for循环体内修改循环变量,如果修改,可能造成for循环失去控制的后果。
2.循环控制变量尽量采用前闭后开区间的写法。
3.for循环中的初始化部分,判断部分,调整部分可以省略。(初学者慎用,容易出问题)
do...while()循环
语法结构:
do
循环语句;
while(表达式);
执行流程
do...while()循环至少执行一次,但由于使用的场合有限,所以不常用。
四、goto语句
goto语句最常用的地方就是终止程序再某些深度嵌套的结构的处理过程,比如,一次跳出多层循环。 这里说一下:break只能从最内层循环退出到上一层的循环,无法直接跳出多层循环。但其实无论是从理论和实践中,没有goto语句都可以很容易写出代码。
goto语句真正适用的场景:
for(...)
for (...)
{
for (...)
{
if (disaster)
goto error;
}
}
...
error:
if(disaster)
//处理错误情况
语法知识到这里就结束了,相关的一些简单的小程序比如求n的阶乘,猜数字等,会在之后更新 “C语言基础:分支语句与循环语句(练习篇)”