随堂笔记---循环结构

1.循环

C语言中循环有三种:

    while循环
    do..while循环
    for循环

2.while循环

语句格式:

      do                                  do{
      循环语句;                          循环语句;
     while(表达式);                 }while(表达式);
     循环外语句;                   循环外语句;
    do..while循环首先执行一次,然后判断表达式,为真就继续执行循环否则结束循环
    while(表达式)之后有分号
    如果循环体只有一条语句,花括号可以省略,如果多条语句则不能省略

eg.例,使用while循环打印1-100内能被9整除的数,的和

    int i=1;//循环变量
    int sum=0;
    printf("1-100内,能被9整除的有:\n");
    while (i<=100) {
        if(i%9==0){
            printf("%d\t",i);
            sum+=i;
        }
        i++;
    }
    printf("\n和为%d\n",sum);

3.do...while循环

     do                        do{
      循环语句;                  循环语句;
     while(表达式);             }while(表达式);
     循环外语句;                循环外语句;
    do..while循环首先执行一次,然后判断表达式,为真就继续执行循环否则结束循环
    while(表达式)之后有分号
    如果循环体只有一条语句,花括号可以省略,如果多条语句则不能省略

eg.使用do..while循环打印1-100以内能被7整除的数字

    int num=1;
    printf("1-100中,能被7整除的有:\n");
    do {
        if (num%7==0) {
            printf("%d\t",num);
        }
        num++;
    } while (num<=100);

4.break语句

     break语句可以结束switch语句,同样可以结束循环
     无论循环还有多少次未执行,遇到break语句就会强制结束循环
     强制结束的循环之后的代码继续执行
     *break只能结束其所在循环

eg.求1-100内的

    int sum=0;
    for (int i=1; i<100; i++) {   //判断是否为素数的外层循环
        for (int j=2; j<=i; j++) {  //除数
            if (j==i) {
                printf("%d\t",i);
                   sum+=i;
               }
            if(i%j==0){                 //能被1,自身以外的数字整除的,
                break;
            }
        }
    }
    printf("\n sum=%d",sum);


5.continue语句

     continue语句用于跳出本次循环,而不结束整个循环,然后继续执行下次循环
     *continue只能结束其所在循环

eg.求1-10的偶数

    int i=0;
    printf("1-10以内的偶数有:\n");
    while (i<10) {
        i++;
        if (i%2!=0) {
            continue;
        }
        printf("%d\t",i);
    }


6.for循环

     for(初始化语句; 判断表达式语句; 改变语句)
        循环语句;
     循环后语句;

     for(初始化语句; 判断表达式语句; 改变语句){
       循环语句;
     }
     循环后语句;
     循环体如果为一条语句可以省略花括号,多条语句不可以省略.

for循环语句的变化
    省略初始化语句
     for( ;判断语句;改变语句){ 循环体; }
    省略条件判断语句
     for(初始化语句; ;改变语句){ 循环体; }
    省略改变语句
     for(初始化语句;判断条件; ){ 循环体; }
    省略三个语句
     for( ; ; ){ 循环体; }
    ……
    注意死循环的情况

7.循环嵌套

     循环之间可以嵌套使用
     注意区分循环罗列和循环嵌套
     循环罗列:
     循环1;
     循环2;
     ……
     循环嵌套:
     循环1{
        循环2{
           ……
      }
     *常见的为两层嵌套,不建议写多层嵌套

eg.    //使用循环嵌套打印如下图形
    *
    **
    ***
    ****
    *****

    for (int i=0; i<=5; i++) {   //行数
        for (int j=0; j<=i; j++) {  //个数
            printf("*");
        }
        printf("\n");
    }

    *
   ***
  *****
 *******
*********

    for (int i=1; i<=5; i++) {
        for (int j=1; j<=5-i; j++) {
            printf(" ");
        }
        for (int k=1; k<=2*i-1; k++) {
            printf("*");
         }
        printf("\n");
    }

        *
       ***
      *****
     *******
      *****
       ***
        *

    int j,k;
    int n;
    printf("请输入你要打印的菱形行数(奇数行)!\n");
    scanf("%d",&n);
    for (int i=1; i<=n; i++) {
        if (i<=(n+1)/2) {
            for (k=1; k<=(n+1)/2-i; k++) {
                printf(" ");
            }
            for (j=1; j<=2*i-1; j++) {
                printf("*");
            }
            printf("\n");
        }else{
            for (k=1; k<=i-(n+1)/2; k++) {
                printf(" ");
            }
            for (j=1; j<=2*(n-i)+1; j++) {
                printf("*");
            }
             printf("\n");
        }
    }

        *
       * *
      *   *
     *     *
      *   *
       * *
        *

    for(int i=1;i<=7;i++){
        if (i<5) {
            for (int j=1; j<=5-i-1; j++) {
                printf(" ");
            }
            for (int k=1; k<=2*i-1; k++) {
                if (k==1||k==2*i-1) {
                    printf("*");
                }else{
                     printf(" ");
                }
            }
        }
        else{
            for (int m=1; m<=i-5+1; m++) {
                printf(" ");
            }
            for (int n=1; n<=2*(7-i)+1; n++) {
                if (n==1||n==2*(7-i)+1) {
                    printf("*");
                }else{
                    printf(" ");
                }
                           }
        }
        printf("\n");
    }




随堂笔记为个人学习笔记,若有错误,望指出,谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值