有人发现生活中的所有事情都离不开顺序、选择和循环。如烧水有它相应的流程(顺序);在十字路口有多个可选的路;每天太阳从东边升起、西边落下。至今还没有能够找到超出这三种可能性的事情。
C语言的三大结构就是顺序、选择和循环结构,这样C语言的功能更接近于生活。在此一一介绍C语言的三大结构,这三大结构对C语言的学习非常重要,每个地方都能用到它们。
顺序结构
顺序结构是指C语言的执行过程是按照C语言的语句一条一条的执行,具有先后顺序,是C语言最常用也最简单的结构。一般的形式是变量的定义和初始化、变量的输入、赋值或计算和变量运算结果的输出。顺序结构没有严格的要求,只要符合C语言语法的规范就可以成为顺序结构,之前的代码都可以成为顺序结构。
选择结构
选择结构是对多种不同的结果做出不同或相同的处理。常用的形式有if语句、if...else语句、if...else if...else语句和switch语句。
if语句
if语句是最简单的选择结构语句,其形式是
if(表达式)
{
语句块;
}
表达式可以是变量、常量(一般不用)或一个计算式。if有如果的意思,所以当表达式的值不为0时,执行语句块的内容;否则跳过语句块,执行大括号后面的内容。语句块可以是一条语句,也可以是多条语句。并且语句块还可以是一条或多条if语句等其它任何语句。注意大括号的位置及配对情况。
if...else语句
if...else语句的语句格式是
if(表达式)
{
语句块1;
}
else
{
语句块2;
}
当if语句的表达式的值不为0时,执行语句块1的内容,否则执行语句块2的内容。表达式和语句块1和2符合上面所说的。
if...else if...else语句
if...else if...else语句的语句格式是
if(表达式1)
{
语句块1;
}
else if(表达式2)
{
语句块2;
}
......
else
{
语句块n;
}
if...else if...else语句是处理多个选择的语句,所以中间的省略号是可以添加多个else if语句的。从表达式1开始计算,只要有1个不为0时就执行相应的语句块,否则继续向下计算。如果全部都为0的话,则执行语句块n的内容。如果当中有一条语句块被执行,即对应的表达式不为0的话,后面的表达式不会被计算,任何的语句块都不被执行。一般表达式的内容是对一个变量的多种情况的考虑或多个变量的并列情况考虑,很少或极少是对多个变量分散情况的考虑,即表达式独立的考虑多个变量中的某一个或多个,相应之间没有变量的重叠。
if...else if...else语句可以被多个if...else语句或if语句替换,但考虑到if...else if...else语句一旦有一个语句块被执行,其它的判断会被终止,节省计算机的计算时间。而多个if...else语句或if语句会判断每个表达式的值,一般情况下会造成计算机资源的浪费,所以能用if...else if...else语句的就用if...else if...else语句。
需要注意的是最后一个else语句可以省略。
switch语句
switch语句的语句格式是
switch(表达式)
{
case 表达式1: 语句块1;break;
case 表达式2: 语句块2;break;
......
default:语句块n;
}
switch语句是if...else if...else语句的变行。当表达式的值与case后面表达式的值相同时,则执行case后面的语句块。如果都不相同则执行default后面的语句块n的内容。break是当之前的语句块被执行后跳出switch整个语句。如果case后面没有break语句的话,那么当这一条的case语句的语句块被执行后,其后的语句块都会被执行,直到遇到break语句或整个switch语句结束。
break语句的使用
break语句具有跳出某一语句块的功能,使其后面的语句不被执行。break语句不仅可以跳出switch语句,也可以跳出循环结构的所有语句,但是在循环结构的语句中只能跳出离break语句最近的循环语句,而在外面的循环结构语句就不能跳出了。这个在这里先讲解一下,因为后面的循环结构语句处理break语句的方式一样。
循环结构
循环结构的语句有for语句、while语句和do...while语句。
for语句
for语句的语句格式是
for(语句1;语句2;语句3)
{
循环体;
}
执行过程是
语句1(一般是循环前的初始化语句)
判断语句2是否为真或是否符合条件,若为真,则执行循环体;否则结束for循环语句,执行for循环语句后面的内容
当循环体执行完后,执行语句3
语句3执行完后,判断语句2,方法同上
语句2为循环条件,可以是表达式。当循环体中有break语句,语句2可以省略。但是三个分号不能省略,否则会出现错误。需要注意的是,为了防止循环一直进行到底无法停止的情况,所以语句1一般是控制循环次数变量的初始化,语句3一般为改变该变量值的语句,防止循环无限执行下去。循环体可以是一条或多条语句。一条语句时可以省略大括号;多条语句时,大括号不能省略,否则执行过程发生错误。循环体可以包含continue语句来控制循环体的执行,其详细说明如下。
continue语句
在for循环当中。当执行到continue语句时,会将continue后面的语句忽略,直接执行语句3,然后继续执行。其与break语句不同的是,continue会终止本次的循环,而break会终止整个循环语句。
while语句
while语句的语句格式是
while(循环条件)
{
循环体;
}
执行的过程是,首先判断循环条件是否为真或满足条件。如果为真或满足条件的话,则执行循环体。循环体执行完后继续判断循环条件。直到循环条件为假时,否则一直执行循环体。
循环条件和循环体的要求与for语句一样,在此不再赘述。
while语句可以与for语句互换。其while语句的循环条件主要受某个或某些变量大小的控制,而for语句的循环次数容易知道,受变量的控制。
do...while语句
do...while语句的语句格式是
do
{
循环体;
}while(循环条件)
执行过程是首先执行循环体,执行完后判断循环条件是否为真或满足条件,若为真或满足条件,则继续执行循环体,知道条件为假或不满足。
do...while语句与while和for语句的主要区别是,不管条件是否成立do...while语句至少执行一次循环体。
如果有问题的可以在公众号回复栏中写出问题描述发给我,我看到的话会进行相应的回复。如果发现文章有问题,也欢迎在公众号回复栏中提问,我会查阅资料进行确认并做出修改和回复。
既然阅读了本篇文章,顺便点一下右下边的在看按钮。