The C Programming Language——控制流

程序语言中的控制流语句用于控制各计算操作执行的次序

1、语句与程序块

在C语言中,分号是语句结束符

用一对花括号把一组声明和语句括在一起就构成了一个复合语句(也叫做程序块),复合语句在语法上等价于单条语句。在任何程序块中都可以声明变量。右花括号用于结束程序块,其后不需要分号


2、if-else语句

将每个else与最近的前一个没有else配对的if进行匹配

建议在有if语句嵌套的情况下使用花括号

3、else-if语句

多路判定:一旦某个表达式结果为真,则执行与之相关的语句,并终止整个语句序列的执行

int binsearch(int x, int v[], int n)
{
    int low, high, mid;

    low = 0;
    high = n - 1;
    while(low <= high)
    {
        mid = (low + high) / 2;
        if(x < v[mid])
            high = mid - 1;
        else if(x > v[mid])
            low = mid + 1;
        else
            return mid; 
    }
    return -1;
}

4、switch语句

switch语句是一种多路判定语句,它测试表达式是否与一些常量整数值中的某一个值匹配,并执行相应的分支动作

每一个分支都由一个或多个整数值常量或常量表达式标记。如果某个分支与表达式的值匹配,则从该分支开始执行。default分支是可选的

break语句将导致程序的执行立即从switch语句中退出。跳出switch语句最常用的方法是使用break语句与return语句

正常情况下,为了防止直接进入下一个分支执行,每个分支后必须以一个break语句结束。除了一个计算需要多个标号的情况外,应尽量减少从一个分支直接进入下一个分支执行的这种用法,在不得不使用的情况下应该加上适当的程序注释

作为一种良好的程序设计风格,在switch语句最后一个分支(即default)的后面也加上一个break语句


5、while循环与for循环

for循环语句的3个组成部分可以是任何表达式。最常见的情况是,表达式1与表达式3是赋值表达式或函数调用,表达式2是关系表达式。这3个组成部分中的任何部分都可以省略,但分号必须保留

在设计程序的时候到底选用while还是for循环语句,主要取决于程序设计人员的个人偏好

当for循环终止后,循环变量的值仍然可以保留(前提是该变量是在循环外定义的)

for语句的各组成部分可以是任何表达式,所以for语句并不限于通过算术级数进行循环控制

void shellsort(int v[], int n)
{
    int gap, i, j, temp;

    for(gap = n / 2; gap > 0; gap /= 2)
    {
        for(i = gap; i < n; i++)
        {
            for(j = i - gap; j >= 0 && v[j] > v[j + gap]; j -= gap)
            {
                temp = v[j];
                v[j] =v[j + gap];
                v[j + gap] = temp;
            }
        }
    }
}

逗号运算符是C语言优先级最低的运算符,被逗号分隔表达式按照从左到右的顺序进行求值,最右边表达式的结果的类型和值为其结果的类型和值

某些情况下的逗号并不是逗号运算符,这种情况下逗号并不保证各表达式按从左至右的顺序求值

逗号运算符最适用于关系紧密的结构中,譬如需要在单个表达式中进行多步计算的宏


6、do-while循环

该循环在循环体执行后测试终止条件

7、break语句与continue语句

break可以用于for、while与do-while循环

break语句能使程序从switch语句或最内层循环中立即跳出(直跳一层而已)

continue语句用于使for、while或do-while语句开始下一次循环的执行。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环中,则意味着使控制转移到递增循环变量部分

continue语句只用于循环语句,不用于switch语句


8、goto语句与标号

C语言提供了可随意滥用的goto语句以及标记跳转位置的标号。从理论上讲,goto语句是没有必要的,实践中不使用goto语句也可以很容易地写出代码

goto最常见的用法是终止程序在某些深度嵌套的结构中的处理过程

标号的命名同变量命名的形式相同,标号的后面要紧跟一个冒号。标号可以位于对应的goto语句所在函数的任何语句的前面。标号的作用域是整个函数(顺序不重要)

建议尽可能少地使用goto语句

猜你喜欢

转载自blog.csdn.net/weixin_39918693/article/details/80583003