C语言的三种基本结构

本文详细介绍了C语言中的顺序执行、分支结构(If-else和switch-case)以及循环(while、do-while和for)的概念及实例,帮助读者理解如何在程序中运用这些结构实现条件判断和重复执行。
摘要由CSDN通过智能技术生成

C语言支持三种结构:

顺序

分支(选择)

循环

1.顺序:

程序从main函数开始执行,按照代码的书写顺序 执行一条语句后,程序将按照顺序执行下一条语句,直至程序执行到最后一条语句或遇到跳转语句(如break、continue、return等)。

执行过程中程序将按照语句的要求进行数据输入,处理和输出操作,是逐步完成程序的。

2.分支:(也叫选择结构)

当出现选择的时候,就会产生分支,满足一种条件运行一个分支,满足另外的条件运行另外的分支,当然不同分支往往运行的结果不同。

分支结构中有两个常用结构:

(1)If..........else 结构

例子:

#include <stdio.h>
int  main()
{
    int a = 10;
    if(a==10)    //如果a等于10,就会执行这个分支,即打印you are right !
        printf("you are right !");
    else        //如果a不等于10,就执行这个分支,即打印you  are wrong !
        printf("you are wrong !");
    return 0;
}

(尝试修改a的值,重新保存,编译,看看执行的结果是什么)

即:如果if后边括号里边的结果为真,就执行if下面的语句,为假就执行else下面的语句。

if......else 结构可以只有if , else可以省略不用。

即这样也可以。

#include <stdio.h>
int  main()
{
    int a = 10;
    if(a==10)       //如果a等于10,就会执行这个分支,即打印you are right ! 如果a不等于10就不打印,继续向下执行其它语句。
        printf("you are right !");
    
    a = 11;
    
    if(a!=10)       //如果a不等于10,就会打印you are right !
        printf("you are right !");
    return 0;
}

运行结果如下:

If.....else 结构还可以嵌套 if....else结构

例子:

#include <stdio.h>

int main()
{
    int a = 11, b = 9;
    if(a > 10)           //if或者else后边可以用大括号括起来执行多条语句。
    { 
        if(b < 10)
            printf("you are right !");
        else
            printf("you are wrong !");
    }
    else
        printf("you are wrong !");
    return 0;
}

运行结果:

(2)switch....case 结构

先举个例子:

#include <stdio.h>
int  main()
{
    int a = 1;
    switch(a)
    {
        case 1:
            printf(“you are 1!”);
            break;
        case 2:
            printf(“you are 2!”);
            break;
        case 3:
            printf(“you are 3!”);
            break;
        default:
            printf(“sorry!”);
            break;
    }

    return 0;
}

即:

1、 switch后边括号中可以是一个变量或者是一个表达式,比如:a+b 等。

2、 当表达式的值跟case 后边的值相同时就执行相应case 后面的语句,然后不再判断case值是否跟表达式的值相同,顺序依次执行以下语句,直到遇到 break 语句,结束switch….case 结构。

3、 如果所有case后的值都与 switch后括号内的值不同,就直接执行 default后边的语句。

注意:case与case,case与default之间没有顺序要求。但一般要按照生后实际来制定他们之间的顺序。

4、 假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

switch…….case………. 语句和 if…………else……语句是C语言程序中常用的分支语句,他们有相似之处,但又有些不同:

1、if…………else……….语句,常用来做条件判断,判断某个条件是否成立,进而执行相应程序。

2、switch…….case………语句,常用到多个分支选择中,用来清晰的表达,多个分支不同的执行路径。

3循环:

使用循环可以多次重复地执行多条语句,这里的“多条语句”称为循环体。在C语言中,可以使用三种循环,分别是:while、do...while和for。

在这些语句中,循环体被重复执行的次数由循环条件控制,称为控制表达式(controlling expression)。这是一个标量类型的表达式,也就是说,它属于一个算术表达式或指针表达式。如果控制表达式的值不等于 0,循环条件为 true,反之,循环条件为 false。

语句 break 和 continue 用于在一次循环还未执行完时,跳转出循环或返回到循环头部。

(1)while 循环

只要控制表达式为 true,while 循环就会反复地执行语句:

while (表达式)语句


while 表达式是顶部驱动(top-driven)的循环:先计算循环条件(也就是控制表达式)。如果为 true,就执行循环体,然后再次计算控制表达式。如果控制表达式为 false,程序跳过循环体,而去执行循环体后面的语句。

(2)for 循环

和 while 一样,for 循环也是一个顶部驱动的循环,但是它包含了更多的循环逻辑,如下所示:

for ([表达式1];[表达式2];[表达式3])
    语句


在一个典型的 for 循环中,在循环体顶部,下述三个动作需要执行:

(1) 表达式 1:初始化
只计算一次。在计算控制表达式之前,先计算一次表达式 1,以进行必要的初始化,后面不再计算它。

(2) 表达式 2:控制表达式
每轮循环前都要计算控制表达式,以判断是否需要继续本轮循环。当控制表达式的结果为 false,结束循环。

(3) 表达式 3:调节器
调节器(例如计数器自增)在每轮循环结束后且表达式 2 计算前执行。即,在运行了调节器后,执行表达式 2,以进行判断。

for 循环头部中的三个表达式可以省略一个或多个。这意味着 for 循环头部最短的形式是:

  1. for ( ; ; )

如果没有控制表达式,则表示循环条件始终是 true,也就是说,这定义了一个死循环。

下面所示的 for 循环,既没有初始化表达式,也没有调节器表达式,它与 while(表达式)语句含义是等效的:

  1. for ( ;表达式; )

事实上,每个 for 循环都可以被改写成 while 循环,反之亦然。例如,例 2 的 for 循环可完全等效为下面的 while 循环:

  1. i = 0; // 初始化计数器
  2. while ( i < ARR_LENGTH ) // 循环条件
  3. {
  4. arr[i] = 2*i;
  5. ++i; // 递增计数器
  6. }

一般来说,当循环内有计数器或索引变量需要被初始化,并且在每次循环时需要调整它们的值时,最好使用 for 循环,而不是 while 循环

(3)do...while 循环

do...while 循环是一种底部驱动的循环:

do 语句 while (表达式);


在控制表达式被第一次计算之前,循环体语句会首先被执行一次。与 while 和 for 循环不同,do...while 循环会确保循环体语句至少执行一次。如果控制表达式的值为 true,那么另一次循环就会继续;如果是 false,则循环结束。

博主水平有限,文章如有错误,欢迎指正,大家一起和谐讨论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值