C语言中常见的几种流程控制语句

 更新时间:2021年08月19日 10:39:06   作者:bleauchat  
这篇文章主要给大家介绍了关于C语言中常见的几种流程控制语句,分别包括goto语句、if语句、switch语句、while循环、do...while循环、for循环以及break和continue等,需要的朋友可以参考下

1.goto语句

goto语句是一种无条件转移语句,goto 语句的使用格式为:

goto  语句标号;

其中语句标号是一个有效的标识符,这个标识符加上一个 ":" 一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句;

另外语句标号必须与goto语句同处于一个函数中,但可以不在一个循环层中;通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行;如下例子:

#include <stdio.h>
int main(void){
    int i,sum=0;
    i=1;
    loop: if(i<=100){
        sum=sum+i;
        i++;
        goto loop;
    }
    printf("%d\n",sum);
    return 0;
}

2.if语句

if使用格式为:

if(condition1)
{}
else if(condition2)
{}
else if(condition3)
...
else
{}

除此之外,if语句之间可以嵌套,如下所示:

3.switch语句

switch的语法格式为:

switch (表达式)
{
    case 常量1:语句1
    case 常量2:语句2
    ...
    default: 语句n+1
}

 注意:

1)switch后面括号内的表达式,其值类型应该为整数类型,包括字符型;

2)可以没有default语句,此时流程转到switch语句的下一条语句执行;

3)每一个分支语句后一般都要加一条break语句,用来跳出switch语句块,最后一个分支可以不加;如将上面的例子改为:

 此时的执行结果为:

 这是因为分支后的常量表达式只会匹配一次,匹配成功后就会执行该分支后的所有语句,如果不加break,则会将后面所有分支的语句执行完!!

4)多个 case 分支可以共用一组执行语句,如下:

case 'A':
case 'B':
{
    printf....
}

4.while循环

语法格式:

while (表达式)
{
语句
}

5.do...while循环

语法格式:

do
{
    语句
}while(表达式);

 与while不同的是,do..while的循环体至少会被执行一次

注意,在 do-while 结构中,while 括号后的分号不能丟。

do-while 循环的执行流程是:首先无条件地执行一次循环体,然后再根据循环控制表达式的值来判断是否继续执行循环体。若为真,则继续执行;若为假,则停止执行,退出 do-while 循环。也就是说,do-while 循环至少执行一次循环体。

do-while 循环和 while 循环的主要差别是:前者至少执行一次循环体,后者有可能一次也不执行循环体。

6.for循环

语法格式:

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

C语言for循环的流程图

下面来看看看如何使用for循环来实现打印一个连续数据的简单程序。创建一个源文件:for-loop.c,其代码如下所示 -

#include <stdio.h>      
void main() {
    int i = 0;

    for (i = 1;i <= 10;i++) {
        printf("%d \n", i);
    }

}

执行上面示例代码,得到以下结果 -

1
2
3
4
5
6
7
8
9
10

break和continue

break用于终止当前层次的循环,而continue用于结束本次循环,转入下一次循环

break 语句很重要,用得非常多,初学者一定要掌握。continue 语句虽然没有 break 语句用得多,但也经常用到,而且不可或缺,需要用到 continue 的时候其他语句是无法替代的。

前面已经介绍过 break 语句,它不仅可以跳出“循环体”,还可以跳出 switch。但事实上,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。

不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。

同样,在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见。

continue 的用法十分简单,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。

总结

到此这篇关于C语言中常见的几种流程控制语句的文章就介绍到这了,更多相关C语言流程控制语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 数据结构用两个栈实现一个队列的实例

    数据结构用两个栈实现一个队列的实例

    这篇文章主要介绍了C++语言数据结构用两个栈实现一个队列的实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • c++ #include是怎么样工作的?

    c++ #include是怎么样工作的?

    大多数园友可能对“#include”比较熟悉,因为我们写C/C++程序的时候都会写的字符串之一,但是它是具体怎么工作的?或者它的原理是什么呢?
    2013-01-01
  • C++嵌套类与局部类详细解析

    C++嵌套类与局部类详细解析

    从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定
    2013-09-09
  • Qt图片绘图类之QPixmap/QImage/QPicture详解

    Qt图片绘图类之QPixmap/QImage/QPicture详解

    这篇文章主要为大家详细介绍了Qt图片绘图类中QPixmap、QImage和QPicture的使用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • C++数据结构与算法的基础知识和经典算法汇总

    C++数据结构与算法的基础知识和经典算法汇总

    终是到了标志着大二结束的期末考试了,对于《算法设计与分析》这门课,我需要总结一下学过的所有算法的思想以及老师补充的关于两个复杂度和递归的概念思想,以及更深层次的理解,比如用画图的方式表达出来,我觉得可以用博客记录总结一下,分享给大家,希望能有所帮助
    2022-05-05
  • Cmake中强大的输出函数message示例解析

    Cmake中强大的输出函数message示例解析

    这篇文章主要介绍了Cmake中强大的输出函数message解析,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • C语言之浮点数的表示与储存方式

    C语言之浮点数的表示与储存方式

    这篇文章主要介绍了C语言之浮点数的表示与储存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • C语言学生成绩管理系统小设计

    C语言学生成绩管理系统小设计

    这篇文章主要为大家详细介绍了C语言学生成绩管理系统小设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++常用的11种设计模式解释及示例代码详解

    C++常用的11种设计模式解释及示例代码详解

    c++常用的设计模式包括单例模式、工厂模式、抽象工厂模式、适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式、观察者模式和命令模式等,这篇文章主要介绍了C++常用的11种设计模式解释及示例,需要的朋友可以参考下
    2023-02-02
  • C语言实现骑士飞行棋小游戏

    C语言实现骑士飞行棋小游戏

    这篇文章主要为大家详细介绍了C语言实现骑士飞行棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02

最新评论