精通学习C语言——语句(2)

  1. 循环语句
    while循环
    C语言中的while语句和其他语言中的while语句有许多相似之处,唯一存在差别的地方就是判断语句部分,和if语句类似。while语句实现循环时,要求循环的测试在循环体开始执行之前进行,所以如果测试的结果一开始就是假的,循环体就根本不会执行。同样,在循环体需要多条语句来完成任务时,可以使用代码块来实现。举例如下:
//使用while语句打印数字1-10
int main()
{
    int i = 1;
    while(i <= 10)
    {
        printf("%d ",i);
        i = i + 1;
    }
    return 0;
}

while语句中还含有break语句和continue语句,接下来分别进行介绍:

while(i <= 10)
{
    if(i == 5)
        break;//continue;
    printf("%d ",i);
    i = i + 1;
}
//break语句输出结果1,2,3,4
//continue语句输出结果1,2,3,4,5死循环

通过上述输出结果,我们可以知道,在while循环中,break语句用于永久终止循环,在执行完break语句之后,执行流下一条执行的语句就是循环正常结束后应该执行的那条语句;continue语句用于永久终止当前的那次循环,在执行完continue语句之后,执行流接下来就是重新测试表达式的值,决定是否继续执行循环。

for循环
C语言for语句比其他语言的for语句更为常用。事实上,我们可以将for语句看做while循环的一种极为常用的语句组合形式的简写法。举例如下:

//使用for语句打印数字1-10
int main()
{
    int i = 0;
    for(i = 1; i <= 10; i++)
    {
        printf("%d ",i);
    }
    return 0;
}

for语句的语法为:

for(表达式1;表达式2;表达式3)
    循环语句
//表达式1为初始化部分,用于初始化循环变量
//表达式2为条件判断部分,用于判断循环时候终止
//表达式3为调整部分,用于循环条件的调整

通过对比,我们发现在while循环中依然存在循环的三个必须条件,但是离的比较远,修改起来没用for语句集中和方便。for循环中同样可以使用break和continue语句,意义和在while循环中是一样的,但还是有些差异,在于continue语句。在for语句中,continue语句跳过循环体的剩余部分,直接回到调整部分;在while语句中,调整部分是循环体的一部分,所以continue将会把它也跳过。

do while()循环
C语言的do语句非常像其他语言的repeat语句。它很像while语句,只是它的测试在循环体执行之后才进去,而不是先于循环体执行。所以,这种循环的循环体至少执行一次,使用的场景有限,所以不经常使用。举例如下:

//使用do循环打印数字1-10
int main()
{
    int i = 0;
    do
    {
        printf("%d ",i);
    }while(i < 10);
    return 0;
}

do while()循环语句中同样可以使用break和continue语句。

  1. goto语句
    C语言中提供了可以随意滥用的goto语句和标记跳转的标号。从理论上goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。但是某些场合下使用goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环,因为这种情况下使用break达不到目的,它只能从最内层循环退出到上一层的循环。举例如下:
while(condition1){
    while(condition2){
        while(condition3){
            if(some disaster)
                goto quit;
        }
    }
}
quit: ;

这个技巧能够实现退出所有循环的目的,但情况被弄得非常复杂。

发布了9 篇原创文章 · 获赞 9 · 访问量 162

猜你喜欢

转载自blog.csdn.net/CCCC_CSDN_LI/article/details/104973752