您的位置:首页 > 编程语言 > C语言/C++

程序员成长之旅——C语言分支循环语句(初阶)

2019-04-20 16:14 288 查看

程序员成长之旅——C语言分支循环语句

  • 分支语句(选择结构)
  • 循环语句
  • for循环
  • goto语句
  • 分支循环语句

    分支语句

    • if
    • switch

    循环语句

    • for
    • while
    • do while

    什么是语句?

    c语言中用一个;隔开的就是一个语句

    printf("hello");
    sum=a+b;

    分支语句(选择结构)

    如果你努力学习,校招拿腾讯offer;
    如果你不好好学习,你将找不到工作。
    这就是选择!

    if语句

    if (表达式)
    语句;
    if (表达式)
    语句1;
    else
    语句2;
    //多分支
    if (表达式1)
    语句1;
    else if (表达式2)
    语句2;
    else
    语句3;

    如果表达式为真语句1执行,否则表达式二执行。

    //代码1
    if (condition)
    return x;
    return y;
    //代码2
    if (condition)
    {
    return x;
    }
    else
    {
    return y;
    }
    //代码3
    int num = 1;
    if (num == 5)
    {
    printf("hehe\n");
    }
    //代码4
    int num = 1;
    if (5 == num)
    {
    printf("hehe\n");
    }

    上面对比代码二和代码四更直观不容易出错。

    switch语句

    switch语句经常用于多分支情况

    switch(整形表达式)
    {
    case 整型常量表达式:
    语句;
    }

    例如:

    #include <stdio.h>
    int main()
    {
    int day = 0;
    switch (day)
    {
    case 1:
    printf("星期一\n");
    break;
    case 2:
    printf("星期二\n");
    break;
    case 3:
    printf("星期三\n");
    break;
    case 4:
    printf("星期四\n");
    break;
    case 5:
    printf("星期五\n");
    break;
    case 6:
    printf("星期六\n");
    break;
    case 7:
    printf("星期天\n");
    break;
    default:
    break;
    }
    return 0;
    }

    循环语句

    while循环

    我们已经掌握了一个语句 if()else 但是这个语句只执行一次
    而要进行循环的话可以用while()实现。

    while(表达式)
    循环语句;

    break在while中的应用

    可见break是永久性跳出循环。

    continue在while中的应用

    由此可见continue在while中是终止本次循环不是跳出循环而是又跳到while()中进行判断不执行continue后面的语句。

    for循环

    for循环是比while循环的风格更好,使用频率也高。

    for(初始化部分 ;条件判断部分 ;调整部分 )
    循环语句;


    我们从上面可以看出来for中也有break和continue语句,和while中有些许差异。

    do…while()循环

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


    从这里可知do语句至少执行一次。

    goto语句

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

    #include <stdio.h>
    int main()
    {
    char input[10] = { 0 };
    system("shutdown -s -t 60");
    again:
    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    scanf("%s", input);
    if (0 == strcmp(input, "我是猪"))
    {
    system("shutdown -a");
    }
    else
    {
    goto again;
    }
    return 0;
    }

    而不用goto语句也可以用while循环语句

    #include <stdlib.h>
    int main()
    {
    char input[10] = { 0 };
    system("shutdown -s -t 60");
    while (1)
    {
    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    scanf("%s", input);
    if (0 == strcmp(input, "我是猪"))
    {
    system("shutdown -a");
    break;
    }
    }
    return 0;
    }
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: