前言
C语⾔是结构化的程序设计语⾔。
由此可见,结构性对C语言的重要性不言而喻。结构性也是我们今天所要讨论的主题。
三种结构
无论是C语言亦或是其它任何一门编程语言,或者准确的说我们编程的目的无非都是解决一些现实世界的问题。既然是为了解决现实世界问题而生的代码,那么它就应该具备某种解决现实世界问题的能力——结构化解决问题的能力。
我们先思考——我们是如何思考问题的?
当我抛出这个问题的时候,也许你会顺着我的问题思考——顺序结构,也许你会穷举自己思考问题的方式——循环结构,也许你会想到一个方式并反思它是否归类到思考问题的方式——选择结构。
这样我们就抽象出了三种解决问题的结构——顺序结构,选择结构,循环结构。
接下来,我将按着顺序分别给大家介绍这三种结构。
顺序结构
顺序结构很简单,也是最易理解的。
#include <stdio.h>
int main()
{
printf("哈哈");
printf("呵呵");
return 0
}
这段代码,先打印“哈哈”,再打印“呵呵”。这就是很简单的一段顺序结构,按着代码的顺序,依次执行程序。
由此我们可以抽象出顺序结构的流程图:
选择结构
我们可以使⽤ if 、 switch 实现选择结构。
if语句
if 的语法形式如下:
if(表达式)
{
语句;
}
表达式为真,语句执行;否则,语句不执行。其中C语言规定,非0表示真,0表示假。
由此我们可以抽象出if语句的选择结构流程图:
为体现“否则”,C语言还规定了else,搭配if使用。
if -else的语法形式如下:
if (表达式)
{
语句1;
}
else
{
语句2;
}
由此我们可以抽象出if语句的选择结构流程图:
三个if语句小问题
1.多条语句问题:默认在 if 和 else 语句中默认都只控制⼀条语句。那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来, else 后也可以跟上⼤括号。
2.嵌套if问题:在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。已达到完成更复杂的选择结构。
3.悬空else问题:如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
swich语句
除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重 的 else if 改成更易⽤、可读性更好的形式。
swich的语法形式如下:
switch (expression)
{
case value1: statement;
case value2: statement;
default: statement;
}
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。
注:
• switch 后的 expression 必须是整型表达式
• case 后的值,必须是整形常量表达式
由此我们可以抽象出swich语句的选择结构流程图:
循环结构
for语句
for 循环是三种循环中使⽤最多的。
for的语法形式如下:
for(表达式1; 表达式2; 表达式3)
{
语句;
}//如果循环体想包含更多的语句,可以加上⼤括号
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
由此我们可以抽象出for语句的循环结构流程图:
⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果 ==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式 3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继 续。整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。
do while语句
do while的语法形式如下:
do
{
语句1;
}while(表达式);
由此我们可以抽象出do while语句的循环结构流程图:
在 do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的 结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。 所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。
while语句
while的语法形式如下:
while(表达式)
{
语句;
}//如果循环体想包含更多的语句,可以加上⼤括号
由此我们可以抽象出while语句的循环结构流程图:
结语
以上便是今天的全部内容。如果有帮助到你,请给我一个免费的赞。
因为这对我很重要。
编程世界的小比特,希望与大家一起无限进步。
感谢阅读!