栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言控制语句详解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言控制语句详解

分支语句(选择结构)

什么是语句? 在C语言中,由一个;隔开的就是一条语句。

内嵌语句以分号结束,内嵌语句有两条及以上,用花括号包含起来。

if条件分支语句
  • 单分支if语句
  • 双分支if语句
  • 多分支if语句
  • if语句的嵌套
单分支if语句:
  • 格式:

    if (表达式)
        语句
    
  • 功能:如果表达式的值为真(非0),则执行其后的语句,否则,不执行其后的语句。

双分支if语句
  • 格式:

    if (表达式)
        语句1;
    else(表达式)
        语句2;
    
  • 功能:如果表达式的结果为真(非0),则执行语句1,否则执行语句2.

多分支if语句
  • 格式:

    if (表达式1)
        语句1;
    else if (表达式2)
        语句2; 
    ……
    else if (表达式m)
        语句m;
    else 语句n; 
    
  • 功能:如果表达式1的值为真(非0),则执行语句1;否则判断表达式2,如果表达式2的值为真(非0),则执行语句2;否则判断表达式3…直到结束。

if语句的嵌套
  • if 与else的配对问题:C语言规定:else总是和它前面最近未曾配过对的if配对。
switch多路开关语句
  • 格式:

    switch (表达式)
    {
        case 常量表达式1 : 语句1;
        case 常量表达式2 : 语句2;
            …
        case 常量表达式n : 语句n;
        default        : 语句n+1;
    }
    
  • 功能:计算“表达式”的值,并按照顺序逐个与case后的“常量表达式”比较,当“表达式”的值与某个“常量表达式”的值相同时,将执行其后的语句,然后不在进行比较,继续执行后面所有语句(包括default语句)。如果“表达式”的值与所有的“常量表达式”的值都不相同,则执行default后的语句,如果default缺省,则执行switch后的其他语句。

  • 注意:

    • switch后的表达式可以是数值型或者字符型的数据。
    • 每一个case后的常量表达式都不能相等,否则会出现矛盾现象。
    • 各个case和default的常量表达式出现的顺序不影响执行的结果。
    • 实际程序中,一般case语句只需要执行一个,常用break语句中断stitch语句。
    • switch语句允许嵌套switch语句。
循环语句(循环结构)
  • while语句
  • do-while语句
  • for循环语句
while语句

基本格式:

while (表达式)
    语句;

功能:当表达式的值为真时,执行循环体语句,为假时,不执行循环体语句。其中,表达式为循环条件,语句为循环体。

注意:

  • 如果表达式的值一开始就为假,则循环体一次也不执行。
  • 为了使循环体能够结束,每执行一次循环体,表达式的值应该有所变化,可以在表达式中实现,也可以在循环体中实现。
do-while语句

基本格式:

do
    循环体语句;
while (表达式);

执行过程:先执行一次循环体,然后判断“表达式”,当表达式值为非0(真),返回继续执行循环体语句,如此反复直到表达式的值为0(假)为止。

注意:

  • 无论一开始表达式的值为“真”还是“假”,循环体中的语句都至少被执行一次。(与while的区别)
for循环语句

基本格式:

for (单次表达式; 条件表达式; 末尾循环体)
    中间循环体;

执行过程:for循环执行时,会先判断条件表达式是否成立,如果条件成立**(值为真)则执行中间循环体,执行完中间循环体后接着执行末尾循环体。在执行完末尾循环体后对条件表达式再次进行判断,若条件还成立,则继续重复中间循环体,当条件不成立(值为假)**时则跳出for循环。

  • 单次表达式:初始化;
  • 条件表达式:条件判断;
  • 末尾循环体:调整部分;

注意:

  • 单次表达式、条件表达式和末尾循环体之间用;隔开。

  • for语句中任何一个表达式都可以省略,但;不能省略。(建议每个变量都不要省略)

    • 如果**“判断部分(条件表达式)”**省略,会导致死循环。
  • for语句中的单次表达式和末尾循环体既可以是一个简单表达式,也可以是由逗号连接的多个表达式。

  • 不可在循环体内修改循环变量,防止for循环失去控制。

  • 循环变量建议采用“前闭后开”的写法,更具有可读性。

    • 例如:for (i=1; i<10; i++)

循环嵌套:一个循环体内又包含另一个完整的循环结构。

  • C语言中的三种循环结构都可以相互嵌套。
  • 执行:首先执行外层循环,外层循环执行一次,内层则执行一次完整的循环。
break语句、continue语句和goto语句

C语言中的break和continue语句是用于跳出循环的语句,称为条件转向语句。

goto语句是用来跳转到通过“标号”指明的某条语句上去执行的语句,称为无条件转向语句。

break语句

基本格式:

break;

功能:在**switch和循环语句(只用于这两种语句)**中用来控制分支或循环的出口,使流程从循环体内跳出,从而提前结束循环。

continue语句

基本格式:

continue;

功能:结束本次循环,立即开始执行下一次循环**(只作用于循环语句中)**

  • 与break的区别:break是跳出循环,结束整个循环过程;而continue是结束正在执行的那次循环,即跳过循环中未执行的那一部分,返回循环判断的条件。
goto语句

基本格式:

goto lable;

功能:无条件转移到“语句标号”指定的代码执行。

  • 当含有多重循环嵌套时,要想跳出更多层的循环,goto语句较break更加方便。
  • goto语句只能在一个函数范围内跳转,不能在跨函数跳转。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025991.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号