• C语言之流程控制


    条件判断

    if-else 语句

    一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。

    语法:

    if(boolean_expression)
    {
       /* 如果布尔表达式为真将执行的语句 */
    }
    else
    {
       /* 如果布尔表达式为假将执行的语句 */
    }
    

    流程图

    代码示例

    #include <stdio.h>
    int main()
    {
        // 定义变量
        short a = 1;
        short b = 2;
        int c = a - b;
    
        // 条件判断
        if( c > 0 )
        {
            printf("a > b
    ");
        }
        else
        {
            printf("a <= b
    ");
        }
    
        return 0;
    }
    

    if- else if-else语句

    代码示例

    #include <stdio.h>
    
    int main()
    {
        // 定义且初始化变量
        int x = 0;
        int y = 0;
    
        printf("请输入两个数:");
    	
        // 请输入两个数
        scanf("%d%d", &x, &y);
    
        if (x > y)
        {
            printf("The bigger is: %d
    ", x);
        }
        else if (x < y)
        {
            printf("The bigger is: %d
    ", y);
        }
        else
        {
            printf("The 2 integers is equal: x == y
    ");
        }
    
        return 0;
    }
    

    switch语句

    一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

    流程图

    代码示例

    #include <stdio.h>
    
    int main()
    {
        // 定义num变量
        int num = 0;
    
        printf("Input a number: ");
    
        scanf("%d", &num);
    	
        // 选择分支
        switch( num )
        {
            case 1:
                printf("A
    ");
                break;
            case 2:
                printf("B
    ");
                break;
            case 3:
                printf("C
    ");
                break;
            case 4:
                printf("D
    ");
                break;
            case 5:
                printf("E
    ");
                break;
            default:
                printf("Invalid Input
    ");
        }
    
        return 0;
    }
    

    循环判断

    while 循环

    只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。

    语法

    while(condition)
    {
       statement(s);
    }
    
    流程图

    代码示例

    #include <stdio.h>
    
    int main()
    {	// 定义sum变量
        int sum = 0;
        // 定义i变量
        int i = 1;
    
        while( i <= 100 )
        {
            sum = sum + i;
            i = i + 1;
        }
    
        printf("sum = %d
    ", sum);
        printf("i = %d
    ", i);
    
        return 0;
    }
    

    编程实战

    求2-100以内的所有质数

    注意:质数只能被1 和 x整除

    #include <stdio.h>
    
    int main()
    {
        // 定义变量i
        int i = 2;
    
        while( i <= 100 )
        {
            // 定义标记
            int flag = 0;
            int j = 2;
    
            while( j < i )
            {
                if( i%j == 0 )
                {
                    flag = flag + 1;
                }
    
                j = j + 1;
            }
    
            if( flag == 0 )
            {
                printf("%d, ", i);
            }
    
            i = i + 1;
        }
    
        printf("
    ");
    
        return 0;
    }
    
    

    for 循环

    for 循环的语法:

    for ( init; condition; increment )
    {
       statement(s);
    }
    
    流程图

    代码示例

    #include <stdio.h>
    
    int main()
    {
        // 初始化两个sum的值
        int esum = 0;
        int osum = 0;
        int i = 0;
    
        for(i=1; i<=100; i=i+2)
        {
            osum = osum + i;
            esum = esum + (i + 1);
        }
    
        printf("osum = %d
    ", osum);
        printf("esum = %d
    ", esum);
    
        return 0;
    }
    

    do...while 循环

    • 在 C 语言中,do...while 循环是在循环的尾部检查它的条件。
    • do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。

    语法

    do
    {
       statement(s);
    
    }while( condition );
    
    流程图

    代码示例

    #include <stdio.h>
     
    int main ()
    {
       /* 局部变量定义 */
       int a = 10;
    
       /* do 循环执行 */
       do
       {
           printf("a 的值: %d
    ", a);
           a = a + 1;
       }while( a < 20 );
     
       return 0;
    }
    

    break

    break能够强制结束当前结构,阻止程序向下执行。

    代码示例

    #include <stdio.h>
    
    int main()
    {
        int sum = 0;
        int i = 1;
    
        while( 1 )
        {
            sum = sum + i;
    
            if( i == 100 )
                break;
    
            i = i + 1;
        }
    
        printf("sum = %d
    ", sum);
        printf("i = %d
    ", i);
    
        return 0;
    }
    

    continue

    • continue立即结束当前循环体,直接进入下一轮条件判断。
    • continue与break不同,并不会结束整个循环。

    代码示例:

    #include <stdio.h>
    
    int main()
    {
        int i = 0;
        int n = 0;
    
        for(i=1; i<1000; i=i+1)
        {
            if( i % 7 )
                continue;
    
            printf("%d ", i);
    
            n = n + 1;
        }
    
        printf("
    ");
        printf("Count: %d
    ", n);
    
        return 0;
    }
    
  • 相关阅读:
    java.lang.UnsatisfiedLinkError: No implementation found for
    target release 1.5 conflicts with default source release 1.7
    (转)makefile里PHONY的相关介绍
    Hint: A potential Change-Id was found, but it was not in the footer (last paragraph) of the commit message
    linux jdk版本随时切换
    提高Service的优先级
    第一章、数字图像的描述
    gluas图形处理——导读
    图像处理学习过程——网站,视频,书籍(长期更新)
    基数排序
  • 原文地址:https://www.cnblogs.com/Guard9/p/12905129.html
Copyright © 2020-2023  润新知