zoukankan      html  css  js  c++  java
  • c语言循环结构

    循环结构:

    1.goto无条件转移语句

    //goto
    //无条件转移语句
    //
    //label:
    //goto label;
    //goto 结合if语句使用
    //尽量不要使用goto
    //只能在当前函数内跳转
    
    int main(int argc, const char * argv[])
    {
        int i=0;
    print://
        printf("hello world
    ");
        i++;
        if (i<10) {
            goto print;
        }
        
        return 0;
    }
    

     实例:goto实现1-100相加

    #include <stdio.h>
    int main(int argc,const char *argv[])
    {
        int sum=0;
        int i=1;
    label:
        sum+=i;
        i++;
        if (i<=100) {
            goto label;
        }
        printf("sum = %d
    ", sum);
        return 0;
    }
    

     2.while循环结构

    //while
    //while(表达式)
    //{
    //    循环体语句列表;
    //}
    //表达式为真, 执行循环体, 为假退出循环
    #include <stdio.h>
    int main(int argc,const char *argv[])
    {
        int i=1;
        int sum = 0;
        while (i<=100) {
            sum+=i;
            i++;
        }
        printf("sum = %d
    ", sum);
        
        return 0;
    }
    

     实例:统计从键盘输入一行字符个数

    方法一:

    int main(int argc,const char *argv[])
    {
        int cnt=0;//统计个数
        char ch;
        while (scanf("%c", &ch),ch!='
    ') {//stdin
            cnt++;
        }
        printf("cnt = %d
    ",cnt);
        
        return 0;
    }
    

     方法二:

    int main(int argc,const char *argv[])
    {
        int cnt=0;
        while (getchar()!='
    ') {//getchar 每次从标准输入文件中读取一个字符,并把这个字符返回
            cnt++;
        }
        //printf("cnt = %d
    ", cnt);//stdout标准输出文件
        fprintf(stdout, "cnt = %d
    ", cnt);
        
        return 0;
    }
    

     3.do...while

    //do
    //{
    //    循环体;
    //}
    //while(条件表达式);
    
    //先执行循环体, 然后判断表达式是否成立
    
    //求1-100以内的奇数的和(do while)
    int main(int argc, const char *argv[])
    {
        int sum =0;
        int i=1;
        do
        {
            if (i%2)
            {
                sum += i;
            }
            i++;
        }
        while (i<=100);
        printf("sum = %d
    ", sum);
        return 0;
    }
    

     4. for循环结构

    //for
    //for (赋值语句; 条件表达式; 变化语句) {
    //    循环体;
    //}
    
    int main(int argc,const char *argv[])
    {
        int i;
        
        for (i = 0; i<10; i++) {
            printf("hello world
    ");
        }
    
        return 0;
    }
    

     实例:打印1-100内所有奇数(for实现)

    int main(int argc,const char *argv[])
    {
        for (int i=1; i<=100; i++) {
            if (i%2) {
                printf("%d ", i);
            }
        }
        //printf("
    ");
        putchar('
    ');//输出一个字符
        
        return 0;
    }
    

     eg. continue,break关键字使用

    int main(int argc,const char *argv[])
    {
        for (int i=0; i<10; i++) {
            if (i==5) {
                continue;//结束本次循环,继续下一次循环
                //break;//跳出整个循环
            }
            printf("i = %d hello world
    ", i);
        }
        return 0;
    }
    

     实例:求出1-100内所有的素数

    //求1~100内所有的素数
    
    /*int main(int argc,const char *argv[])
    {
        int i,j;
        for (i=1; i<=100; i++) {
            for (j=2; j<i; j++) {//i % (2 ~ i-1)
                if (i%j==0) {
                    break;
                }
            }
            if (i!=j) {
                continue;
            }
            printf("%d ", i);
        }
        return 0;
    }*/
    
  • 相关阅读:
    vim配置
    git rebase
    mongodb的docker-compose.yml
    Nginx配置BrowserRouter跟随react-router
    Flux Architecture & Redux Data Flow & redux & react-redux PPT
    from acwing 从算法数量推算算法复杂度
    evalRPN 逆波兰算术
    二分区间
    Flex布局
    Treap 模板
  • 原文地址:https://www.cnblogs.com/sublimter/p/4161228.html
Copyright © 2011-2022 走看看