美文网首页C语言
详解C语言语句

详解C语言语句

作者: d9fc24a0c9a9 | 来源:发表于2017-09-11 22:40 被阅读17次

    空语句

    空语句本身并不执行任何任务,但有时还是有用的。它所适用的场合就是语法要求出现一条完整的语句,但并不要求它执行任何任务。

    表达式语句

    C语言并不存在专门的赋值语句,那它是如何进行赋值的?答案是赋值就是一种操作,就像加减法一样,所以赋值就在表达式内进行。
    你只要在表达式后面加上一个分好,就可以把表达式转化为语句,所以下面两个语句是表达式语句而不是赋值语句。

    x = y + 3;
    ch = getchar();

    if语句

    if语句的语法如下

    if(expression)
      statement;    
    else 
      statement;
    

    如果expression的值为真,纳米就执行第一个statement,佛则就跳过它。如果存在else语句,它后面的statement只有当expression的值为假的时候执行。

    在C语言中的if语句与其它语言中的if语句,只存在一个差别C并不具备布尔类型,而是用整数来替代,这样expression看可以是任何能够产生整型结果的表达式——零标识,非零表示
    注意:else子句从属于最靠近它的不完整if语句

    while语句

    while(expression)
      statement;
    

    break语句和continue语句

    在while循环语句中可以使用break和continue语句,其中break语句用于永久终止循环,在执行完break语句后,执行流执行的下一条语句就是循环正常终止后应该执行的语句。
    continue语句用于永久终止当前循环,在执行完continue语句后,执行流接下来就是重新测试表达式的值,决定是否据需执行循环。
    这两条语句的任何一条如果出现于嵌套的内部循环,它只对最内层的循环起作用,你无法使用break和continue语句对最外层的语句起作用。

    for语句

    for(expression1;expression2;expression3)
      statement;
    

    相当于while语句的下列表现形式

     experssion1
    while(expression2)
    {
      statement;
      expression3;
    }
    

    其中statement称为循环体,expression1称为初始化部分,expression2称为条件部分,expression3称为调整部分,它在循环体执行之后,条件部分执行之前执行,三个部分都是可选部分,三个都省略,表示条件适中为真。

    for语句和while语句执行过程中出现continue语句的区别:
    1.在for语句中,continue语句直接跳过循环体的剩余部分,直接回到调整部分。
    2.在while语句中,调整部分属于循环体的一部分,所以continue将会把它也跳过。

    do语句

    do
      statement;
    while(expression);
    

    do语句和很像while语句,再是它的测试条件在循环体执行一次之后才进行执行,所以这种循环体至少被执行一次。

    switch语句

    switch(expression)
    {
        statement_list;
    }
    

    贯穿于语句列表之间的是一个或多个case标签,形似如下:

    case constant-expression:
    

    每个case标签必须具有一个唯一的值,常量表达式是指在编译期间进行求值的表达式,它不能是任何变量。这里的case标签并不是把语句列表划分成几个部分,它们只是确定语句列表的进入点。

    switch语句中的break语句

    如果在switch语句中使用break语句,执行流会立即跳到语句列表的末尾,break语句的实际效果是把语句列表划分成不同的部分。
    continue在switch语句种不起任何作用。

    default语句

    default:
    

    如果表达式的值与所有的case标签都不匹配,可以在任何一个可以出现case语句的位置添加一个default语句

    goto 语句

    goto  语句标签
    

    要使用goto 语句你必须在你希望跳转的语句前面加上语句标签,语句标签就是标识符后面加个冒号(:)

    goto 语句很适合一种情况——跳出多层嵌套循环,由于break语句只能影响它的最内层循环,要想立即从深层嵌套的循环中退出,使用goto语句效果和好

        while(conditional1){
                     while(conditional1){
                               while(conditional3){
                                        if(some disater)
                                                goto quit;
                                        }
                    }
    }
    quit: ;
    

    要想在这种情况下避免使用副作用颇多的goto语句,有两种解决方式:

    -第一个方案是当你希望退出所有循环时设置一个标志状态,但这个标志状态在每个循环中都要测试

    enum
    {
        EXIT,
        OK
    } status;
    while(status == ok && conditionl1)
    {
        while(status == ok && condition2)
        {
          while(condition3)
          {
              if(some disater)
                {
                    status = EXIT;
                    break;
                }
          }
        }
    }
    

    -另外一个方案是把所有的循环放到一个单独的桉树里面,当"灾难"降临到最内层循环时,可以使用return语句离开该函数。

    相关文章

      网友评论

        本文标题:详解C语言语句

        本文链接:https://www.haomeiwen.com/subject/cxzfsxtx.html