3、代码发布流程及工具

云原生持续集成与部署(CI/CD)全链路技术栈,覆盖Docker容器化、Kubernetes编排、GitLab CI流水线设计、Argo CD实现GitOps,以及Jenkins的集成。通过Python与Java等项目实战,掌握从代码提交到生产环境分钟级部署的自动化流水线构建,并学习自动扩缩容等DevOps高阶技能 课程持续更新,完整视频查看: https://www.udemy.com/course/cloud-native-continuous-integration-and-deployment-cicd/?couponCode=MT250908G1

c语言之控制语句

一、大纲介绍

  • 顺序语句(if~else~)
  • 分支语句(switch)
  • 循环语句(for、while~、do~while~、goto)

二、顺序语句

(一)lif语句概述

if (表达式)

  语句块1

else

  语句块2

常见形式

  • 简化形式

if(表达式) 语句块 例如: if(x>y) printf(“%d”, x);

  • 阶梯形式
阶梯形式if语句
if(表达式1) 语句块1
  else if(表达式2) 语句块2
  else if(表达式3) 语句块3
        else if(表达式4) 语句块4
                                  ...
                                 else 语句块n
  • 嵌套形式
if语句的嵌套
if()
    if()    语句块1
   else      语句块2
else
   if()    语句块3
   else     语句块4

注意

语句块:当有若干条语句时,必须用{…}括起来。
表达式:
a)一般情况下为逻辑表达式或关系表达式
如:if(a= =b && x= =y)  printf(“a=b,x=y”);
b)也可以是任意类型(包括整型、实型、字符型、指针类型)
如:if(‘a’) printf(“%d”,’a’);
c)请区分if(x=1)与if(x= =1)的不同。

(二)实例

1、实例一

#include <stdio.h>

int main(int argc, char *argv[]) {

    float a = 4, b = 5, c = 2, t;
    if(a >b) {
        t = a;
        a = b;
        b = t;
    };

    if(a > c) {
        t = a;
        a = c;
        c = t;
    };

    if(b > c) {
        t = b;
        b = c;
        c = t;
    };

    printf("%5.2f, %5.2f, %5.2f\n", a, b, c); //  2.00,  4.00,  5.00

    return 0;
}

2、实例二

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[]) {

    float a, b, c;
    float p;
    float area;

    scanf("%f %f %f", &a, &b, &c);

    if( a + b <= c || a + c <= b || b + c <= a ||  abs(a - b) >= c || abs(a - c) >= b || abs(b - c) >= a) {
        printf("invalid input\n");
    } else {
        p = (a+b+c) / 2;
        area = sqrt(p * (p-a) * (p-b) * (p-c));
        printf("%.2f, %.2f, %.2f ---> %.2f\n", a, b, c, area);
    };

    return 0;

}

3、实例三

#include <stdio.h>

int main(int argc, char *argv[]) {

    float score;

    printf("please input your score:");
    scanf("%f", &score);

    if (!(score >= 0 && score <= 100)) {
        printf("not in [0, 100]\n");
    } else if (score >= 90) {
        printf("A-excellent\n");
    } else if (score >= 70) {
        printf("B-good\n");
    } else if (score >= 60) {
        printf("C-ok\n");
    } else {
        printf("D-not paas\n");
    }

    return 0;

}

三、分支语句

(一)switch语句概述

switch语句的基本形式:

switch (表达式)
{  case 常量表达式1:语句块1;break;
   case 常量表达式2:语句块2; break;
    ….
   case 常量表达式n:语句块n; break;
   default    :语句块n+1
  }

switch语句的使用:

  • 每个常量表达式的值必须各不相同,否则将会出现矛盾。
  • 当表达式的值与case后面的常量表达式值相等时,就执行此case后面的语句。
  • switch中的表达式可以是整型、字符型表达式或枚举。
  • case 常量:只起语句标号的作用。

switch语句的使用:

  • break语句用于强行跳出switch体,一般每个case后面应有一个break语句,default分支后的break可以省略。
  • 多个case可以执行一组语句。

(二)实例

1、实例一

#include <stdio.h>

int main(int argc, char *argv[]) {

    enum weekday
    {sun, mon, tue, wed} a;

    a = wed;

    switch (a) {
    case 1:
        printf("1\n");
        break;
    case 2:
        printf("2\n");
        break;
    case 3:
        printf("3\n");
        break;
    default:
        printf("not 1 2 3\n");
    }

    return 0;

}

2、实例二

#include <stdio.h>

int main(int argc, char *argv[]) {

    float score = 0;

    printf("please input score:");
    scanf("%f", &score);

    if (!(score >= 0 && score <= 100)) {
        printf("not in [0, 100]\n");
    } else {
        switch ((int)score / 10) {
        case 10:
        case 9:
            printf("A-excellent\n");
            break;
        case 8:
        case 7:
            printf("B-good\n");
            break;
        case 6:
            printf("C-ok\n");
            break;
        default:
            printf("D-not paas\n");

        }

    }

    return 0;

}

四、循环语句

(一)goto语句

特点:当函数有很多个出口,使用goto把这些出口集中到一处是很方便的,特别是函数中有许多重复的清理工作的时候。

  • 无条件跳转易于理解
  • 可以减少嵌套
  • 可以避免那种忘记更新某一个出口点的问题
  • 帮助编译器做了代码优化
#include <stdio.h>

int main(int argc, char *argv[]) {

    int i = 0;
    int sum = 0;
_loop:
    if (i <= 100) {
        sum += i;
        i++;
        goto _loop;
    }

    printf("1+2+3...+100=%d\n", sum);

    return 0;
}

(二)while语句

while语句构成循环

基本形式:

while (表达式) {
  statatments;
}

求1到100的和:

#include <stdio.h>

int main(int argc, char *argv[]) {

    int i = 0;
    int sum = 0;

    while (i <= 100) {

        sum += i;
        i++;

    }

    printf("1+2+3...+100=%d\n", sum);

    return 0;

}

打印出所有的“水仙花”数。“水仙花”数是指一个3位数,其各个位数字立方和等于该数本身:

#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[]) {

    int n = 100;
    int a, b, c;

    while (n <= 999) {
        a = n / 100;
        b = n / 10 % 10;
        c = n % 10;

        if (pow(a, 3) + pow(b, 3) + pow(c, 3) == n) {
            printf("%d\n", n);
        }
        n++;
    }


    return 0;

}

(三)do-while语句

do-while语句构成循环

基本形式

do {
  statatments;
}while(表达式);

例子,求1到100的和

#include <stdio.h>

int main(int argc, char *argv[]) {

    int i = 1;
    int sum = 0;

    do {

        sum += i;
        i++;

    } while (i <= 100);

    printf("1+2+3...+100=%d\n", sum);

    return 0;

}

(四)for语句

一般形式:

for(expression1; expression2; expression3)
{ statements;}

执行过程:

  • 1.先求解表达式
  • 2.求解表达式2,若为真,则执行循环体,然后执行步骤3;若为假,则执行步骤5;
  • 3.求解表达式3;
  • 4.转回执行步骤2;
  • 5.执行for下面的语句。

for语句构成循环:

  • 表达式1可省略,但循环之前应给循环变量赋值
  • 表达式2可省略,将陷入死循环
  • 表达式3可省略,但在循环体中增加使循环变量值改变的语句

 

求1-100的和:

#include <stdio.h>

int main(int argc, char *argv[]) {

    int i = 1;
    int sum = 0;

    for (;i <= 100; i++) {

        sum += i;

    }

    printf("1+2+3+...+100=%d\n", sum);

}

 

利用for循环打印九九乘法表 :

#include <stdio.h>

int main(int argc, char *argv[]) {

    int i, j;

    for (i = 1; i <= 9; i++) {
        for (j = 1; j <= i; j++) {
            printf("%d*%d=%d\t", i, j, i * j);
        }
        puts("");

    }

    return 0;

}

 

思考:利用for循环打印下面的图案?(大小写)

F
_FE
__FED
___FEDC
FEDCB
_FEDCBA
#include <stdio.h>

int main(int argc, char *argv[]) {

    int i, j;
    char ch = 'F';

    printf("please input char:");
    scanf("%c", &ch);

    for (i = 0; i <= ch - 'A'; i++) {

        for (j = 0; j < i; j++) {
            putchar('_');
        }

        for (j = 0; j <= i; j++) {
            putchar(ch-j);
        }

        putchar('\n');

    }

    return 0;

}

(五)辅助控制语句

1、break语句

用于从循环体内跳出循环体,即提前结束循环。

注意:break只能用在循环语句和switch语句中

判断素数:

在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。
#include <stdio.h>
#include <math.h>


int main(int argc, char *argv[]) {

    int n, temp;
    int i;

    printf("please input:");
    scanf("%d", &n);

    temp = sqrt(n);
    i = 2;

    while (i <= temp) {

        if (n % i == 0) {
            break;
        }
        i++;
    }

    if (i <= temp) {
        printf("%d not paas\n", n);
    } else {
        printf("%d paas\n", n);
    }

    return 0;

}

2、continue语句

结束本次循环,接着判定下一次是否执行循环

注意:continue与break的区别

continue直结束本次循环,而break终止本层循环

#include <stdio.h>
#include <math.h>


int main(int argc, char *argv[]) {

    for (int i = 1; i <= 1000; i++) {

        if (i % 3 == 0) {
            continue;
        }

        printf("%d\n", i);

    }

    return 0;

}

3、return语句

return语句的一般形式: return ( <表达式> )

  • 主要用于终止包含它的函数的执行
  • 若终止的为主函数,则主程序结束
#include <stdio.h>

int func() {

    return 10;
}

int main(int argc, char *argv[]) {

    int res;

    res = func();

    printf("%d\n", res);

    return 0;

}

此博客中的热门博文

玩转虚拟机系列之如何搭建虚拟机

玩转虚拟机系列之远程工具

玩转虚拟机系列之如何高效创建虚拟机