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;
}*/
原文地址:https://www.cnblogs.com/sublimter/p/4161228.html