内容纲要

顺序结构

#include <stdio.h>

int main()
{
    printf("步骤一");
    printf("步骤二");
    printf("步骤三");
    printf("步骤四");
    return 0;
}

顺序结构是程序最常用的,基本的组成部分。

语句一条一条按顺序执行,流程图如下:

顺序结构

选择结构

进行判断,进入指定的分支进行执行

选择结构

if语句

  1. if(表达式){语句体}:先判断表达式,如果为真,则执行里的语句体,如果为假,不执行。其中在C语言中非零整数都为真,0为假。
#include <stdio.h>

int main()
{
    int score = 70;
        if(score >= 60) {
            printf("成绩及格了");
        }
        printf("结束");
    return 0;
}
  1. if(表达式){语句体一} else{语句体二}:先判断表达式,如果为真,则执行里的语句体一,如果为假,则执行else{语句体二}
#include <stdio.h>

int main()
{
    int score = 70;
    if(score >= 60) {
        printf("成绩及格了");
    }else{
        printf("成绩不及格");
    }
    printf("结束");
    return 0;
}
  1. 嵌套使用if(表达式一){语句体一} else if(表达式二){语句体二}else{}:先判断表达式一,如果为真,则执行里的语句体一,如果为假,则继续判断表达式二,如果为真,执行else{语句体二},依次循环。
#include <stdio.h>

int main()
{
    int score = 70;
    if(score >= 90) {
        printf("成绩优秀");
    }else if(score >= 70){
        printf("成绩良好");
    }else if(score >= 60) {
        printf("成绩合格");
    }else {
        printf("成绩不及格");
    }
    printf("结束");
    return 0;
}

若只有一条语句体时,也可以不写,但是建议写。

switch语句

switch语句根据表达式的结果执行case结果,然后继续执行后续语句,若没有break则执行下一个case,直到遇到break结束执行,若全部未匹配,则执行defaultswitch(表达式)里的表达式必须是整型、字符型、枚举类型。

#include <stdio.h>

int main()
{
    int score = 70;
    switch(score / 10) {
    case 10:
    case 9:
        printf("成绩优秀");
        break;
    case 8:
    case 7:
        printf("成绩良好");
        break;
    case 6:
        printf("成绩合格");
        break;
    default:
        printf("成绩不及格");
        break;
    }
    return 0;
}

循环结构

在满足判断表达式的情况下反复执行循环体,需要控制条件出口,否则会发生循环等待,也就是死循环。数据类型有最大值,达到最大值后,再加1会变成负数

循环结构

goto语句

C语言中的goto语句是无条件转移语句,通常不用。它使程序层次不清,不易读,在多层嵌套退出时使用比较合理。

格式:

语句标号 :
goto 语句标号;

语句标号为一个标识符,执行goto语句后跳转到语句标号处,执行其后面的语句,goto语句必须与标号同处一个函数内。

#include <stdio.h>

int main()
{
    int i,sum = 0;
    i = 1;
    loop :
        if(i <= 100){
            sum += i;
            i++;
            goto loop;
        }
    printf("%d",sum);
    return 0;
}

while语句

while循环先判断循环条件是否满足(为真,非零整数也为真),再执行循环体,有可能一次都不执行。

#include <stdio.h>

int main()
{
    int i = 10;
    int sum = 0;
    while(i > 0) {
        sum += i;
        i--;
    }
    printf("%d",sum);
    return 0;
}

do while语句

do while循环先执行循环体,再判断条件,不管满不满足判断条件都会执行一次。

#include <stdio.h>

int main()
{
    int i = 10;
    int sum = 0;
    do {
        sum += i;
        i--;
    }while(i > 0);
    printf("%d",sum);
    return 0;
}

for语句

可以使用for(初始条件;条件判断;控制条件){语句体},可以灵活使用for()表达式。

#include <stdio.h>

int main()
{
    int sum = 0;
    for(int i = 10;i > 0;i--) {
        sum += i;
    }

//      int i = 10;
//      for(;i > 0;) {
//          sum += i;
//          i--;
//      }
    printf("%d",sum);
    return 0;
}

跳出

在循环语句或者switch中使用breakcontinue来跳过循环或终止分支。

break

前面可以看到break可以直接终止switch,同时也看终止循环。如果是双层循环,只会终止内层循环。

#include <stdio.h>

int main()
{
    int sum = 0;
    for(int i = 10;i > 0;i--) {
        if(i == 5) {
            break;
        }
        sum += i;
    }
    printf("%d",sum);
    return 0;
}

continue

continuebreak不同,是因为continue只会跳过当前循环,继续进行下一次循环,而break是彻底终止循环。

#include <stdio.h>

int main()
{
    int sum = 0;
    for(int i = 10;i > 0;i--) {
        if(i == 5) {
            continue;
        }
        sum += i;
    }
    printf("%d",sum);
    return 0;
}
最后修改日期:2020年11月27日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。