C语言的结构性

前言

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语句的循环结构流程图:

结语

以上便是今天的全部内容。如果有帮助到你,请给我一个免费的赞。

因为这对我很重要。

编程世界的小比特,希望与大家一起无限进步。

感谢阅读!

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值