zoukankan      html  css  js  c++  java
  • iOS学习笔记---C语言第三天

    循环结构 : while循环   do...while循环(几乎不用)      for循环(使用最多)

    特点:在给定的条件成立时,反复执行某程序段,直到条件不成立为止。

    给定的条件为循环条件,反复执行的程序段位循环体。

    一、while循环

    while(条件表达式){

      循环语句;

    }

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
        int i = 0;
        while (i<10) {
            printf("hello,word!
    ");
            i++;
        }
        return 0;
    }
     1 #import <Foundation/Foundation.h>
     2 
     3 int main(int argc, const char * argv[])
     4 {
     5 //用while打印出1~100之间7的倍数。
     6 //    int i = 1,d;
     7 //    while (i<=100) {
     8 //        d = i%7;
     9 //        if (d == 0 ) {
    10 //            printf("%d	",i);
    11 //        }
    12 //        
    13 //        i++;
    14 //    }
    15 //用while打印出1~100之间个位为7的数
    16 //    int i = 1,d;
    17 //    while (i<=100) {
    18 //        d = i%10;
    19 //        if (d == 7 ) {
    20 //            printf("%d	",i);
    21 //        }
    22 //
    23 //        i++;
    24 //    }
    25     //用while打印出1~100之间⼗十位为7的数
    26 //    int i = 1,d;
    27 //    while (i<=100) {
    28 //        d = i/10;
    29 //        if (d == 7 ) {
    30 //            printf("%d	",i);
    31 //        }
    32 //        
    33 //        i++;
    34 //    }
    35     //用while打印出1~100之间不是7的倍数并且 不包含7的数
    36     int i = 1,d,a,b;
    37     while (i<=100) {
    38         d = i/10;
    39         a = i%7;
    40         b = i%10;
    41         if (d != 7 &&a!=0 &&b!=7) {
    42             printf("%d	",i);
    43         }
    44         
    45         i++;
    46     }
    47 
    48     return 0;
    49 }

    随机数 arc4random()-----返回一个伪随机数

    //得到0到30之间的数
        printf("%d",arc4random()%31);

    //得到1040之间的数

        printf("%d",arc4random()%31+10);

     取(m,n)之间的随机数  printf("%d",arc4random()%(n-m+1)+m);

     1    // 用户从控制台输⼊入⼀一个n,⽤用while打印n个随机数, 范围为[30~70],找出n个随机数中的最⼤大值
     2 #import <Foundation/Foundation.h>
     3 
     4 int main(int argc, const char * argv[])
     5 {
     6     int n,i,max=0,b;
     7     printf("输入一个数n:");
     8     scanf("%d",&n);
     9     while (i<n) {
    10         b = arc4random()%41+30;
    11         printf("%d ",b);
    12         if (max < b) {
    13             max = b;
    14         }
    15         i++;
    16         
    17         
    18     }
    19     printf("
    max=%d",max);
    20     return 0;
    21 }

     break    在switch语句中,break是跳出switch语句块,执行switch语句块下面的语句

    在循环中,break主要作用是跳出本层循环,执行循环后面的语句,通常break语句总是与if语句联在一起

    找bug:1.打断点2.看log日志

    continue  语句一般会跳过某次循环的部分内容,继续下一次循环,不会结束循环。

     1 //#import <Foundation/Foundation.h>
     2 //
     3 //int main(int argc, const char * argv[])
     4 //{
     5 //    int i=0;
     6 //    
     7 //    while (i<10) {
     8 //        printf("%d ",i);
     9 //        
    10 //        i++;
    11 //        if (i == 8) {
    12 //            break;
    13 //        }
    14 //        
    15 //    }
    16 //    
    17 //    return 0;
    18 //}//输出0 1 2 3 4 5 6 7
    19 #import <Foundation/Foundation.h>
    20 
    21 int main(int argc, const char * argv[])
    22 {
    23     int i=0;
    24     while (i<10) {
    25         if (i>0&&i<=8) {
    26             i++;
    27             continue;
    28         }
    29         printf("%d ",i);
    30         i++;
    31     }
    32 //    while (i<10) {
    33 //        if (i == 0||i == 9)
    34 //            printf("%d ",i);
    35 //        i++;
    36 //    }
    37     
    38     return 0;
    39 }//输出0 9

     二、do...while

    do{

    循环语句;

    }while(条件表达式);

    执行循环时,先执行循环体,在判断循环条件,直到条件不满足的时候,循环结束。

    至少循环一次。

    三、for循环

    for(循环变量初始化;循环条件;循环增量){

      语句(循环体);

    }

    循环条件为真的时候,执行循环体。通常给循环变量加条件来控制循环的结束。

     1 #import <Foundation/Foundation.h>
     2 
     3 int main(int argc, const char * argv[])
     4 {
     5     
     6     for (int i=1; i<100; i++) {
     7         if (i/10!=7&&i%7!=0&&i%10!=7) {
     8             printf("%d ",i);
     9         }else printf("");
    10         
    11     }
    12     
    13     return 0;
    14 }//逢7过
     1 //输出三排随机数10-30,每排三个数
     2 /*
     3  #import <Foundation/Foundation.h>
     4 
     5 int main(int argc, const char * argv[])
     6 {
     7     
     8     for (int i = 1; i<4; i++) {
     9         for (int j=0; j<3; j++) {
    10             printf("%d ",arc4random()%21+10);
    11         }
    12         printf("
    ");
    13     }
    14     
    15     return 0;
    16 }*/
    17 //输出三排随机数,第一排一个数,第二排两个数,第三排三个数,随机数范围10-30
    18 #import <Foundation/Foundation.h>
    19 
    20 int main(int argc, const char * argv[])
    21 {
    22     
    23     for (int i = 0; i<3; i++) {
    24         for (int j=0; j<=i; j++) {
    25                 printf("%d ",arc4random()%21+10);
    26         }
    27         printf("
    ");
    28     }
    29     
    30     return 0;
    31 }
    32 //输出乘法口诀表
    33 /*
    34 #import <Foundation/Foundation.h>
    35 
    36 int main(int argc, const char * argv[])
    37 {
    38     
    39     for (int i = 1; i<=9; i++) {
    40         for (int j=1; j<=i; j++) {
    41             printf("%d*%d=%d	",i,j,i*j);
    42             
    43         }
    44         printf("
    ");
    45     }
    46     
    47     return 0;
    48 }*/
    //打印三个数字(0-9)的组合可能(组合成三位数)
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
        
        for (int i = 0; i<=9; i++) {
            for (int j=0; j<=9; j++) {
                for (int k =1; k<=9; k++) {
                    printf("%d%d%d ",k,i,j);
                }
                
            }
           
        }
        
        return 0;
    }

    总结:

    循环是程序开发最重要的组成部分,充分理解循环的执行过程是学好以后课程的保障

    for循环最常⽤用,通常⽤用于循环次数已知的情形

    while循环也很常⽤用,通常⽤用于不知道循环次数的情形

    do...while不是特别常⽤用,通常⽤用于需要先执⾏行⼀一次的情形

     三种循环⼀一般都能相互转化

  • 相关阅读:
    SQL Server 查看新建、重建、重组索引进度
    CentOS PostgreSQL 12 主从复制(主从切换)
    CentOS PostgreSQL 12 安装
    SQL Server 当前事务无法提交,而且无法支持写入日志文件的操作。
    MySQL 碎片整理
    MySQL 5.7 MHA(mha4mysql-manager依赖包)
    MySQL- 5.7 sys schema
    MySQL InnoDB 恢复(recovery)详细流程
    MySQL学习(二十五)order by 逻辑
    jvm学习(一)DirectByteBuffer堆外内存浅析
  • 原文地址:https://www.cnblogs.com/limicheng/p/3779249.html
Copyright © 2011-2022 走看看