C语言_循环结构

循环结构

while循环

例一: while打印出1~100之间7的倍数。

    // 初始化循环变量
   int i = 1;
    // 开始循环,循环条件为100内
   while (i <= 100) {
        //如果满足条件,执行括号内的语句,如果不满足,跳出循环
        // 判断是否为7的倍数,如果是,输出
       if (i % 7 == 0) {
            printf("%d ", i);
        }
        //需要注意,循环增量务必保证可以执行到
        i++;
        //语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
    }

    

例二:while打印出1~100之间个位为7的数。

    // 初始化循环变量
   int i = 1;
    // 开始循环,循环条件为100
   while (i <= 100) {
        //如果满足条件,执行括号内的语句,如果不满足,跳出循环
        // 判断是否个位为7,如果是,输出
       if (i % 10 == 7) {
            printf("%d ", i);
        }
        i++;
        //语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
    }


例三:while打印出1~100之间十位为7的数

    // 初始化循环变量
   int i = 1;
    // 开始循环,循环条件为100
   while (i <= 100) {
        //如果满足条件,执行括号内的语句,如果不满足,跳出循环
        // 判断是否十位为7,如果是,输出
       if (i / 10 == 7) {
            printf("%d ", i);
        }
        i++;
        //语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
    }


例四:while打印出1~100之间不是7的倍数并且不包含7的数。

    // 初始化循环变量
   int i = 1;
    // 开始循环,循环条件为100
   while (i <= 100) {
        //如果满足条件,执行括号内的语句,如果不满足,跳出循环
        //判断能否被七整除,个位是否为七,十位是否为七,如果不是,输出
       if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {
            printf("%d ", i);
        }
        i++;
        //语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
    }


例五:用户从控制台输入⼀个n,while打印n个随机数(范围为10~30)

    // 初始化循环变量
   int i = 0;
    printf("Input number:");
    scanf("%d", &i);
    // 开始循环,循环条件为i
   while (i > 0) {
        //如果满足条件,执行括号内的语句,如果不满足,跳出循环
        // 获取一个10~30随机数
       int a = arc4random() % 31 + 10;
        printf("%d ", a);
        i--;
        //语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
    }
    printf("\n");


例六:⽤户从控制台输⼊⼀个n,while打印n个随机数(范围为30~70),找出n个随机数中的最⼤值

    // 初始化循环变量
   int i, max = 0;
    printf("Input number:");
    scanf("%d", &i);
    // 开始循环,循环条件为i
   while (i > 0) {
        //如果满足条件,执行括号内的语句,如果不满足,跳出循环
        // 获取一个随机数
       int j = arc4random() % 31 + 10;
        // 判断,最大值赋值给max
       if (j > max) {
            max = j;
        }
        // 输出获取的随机数
        printf("%d ", j);
        i--;
        //语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
    }
    // 输出最大值
    printf("max = %d\n", max);


for循环    

 1.循环变量初始化 2.循环条件->(条件满足才执行) 3.语句 4.循环增量

    for (int i = 1; i < 101; i++) {
        if (i % 7 == 0) {
            printf("%d ", i);
        }
    }
    printf("\n");


创建一个3次的循环    

for (int i = 0; i < 3; i++) {
        printf("外层循环第%d次开始\n",i + 1);
        // 循环打印1 2 3
        for (int j = 1; j < 4; j++) {
            printf("内层循环第%d次开始:",j);
            printf("%d \n", j);
        }
        printf("内层循环结束\n");
        printf("外层循环第%d次结束\n\n",i + 1);
    }


例一:输出九九乘法表

    // 控制行
   for (int i =1; i < 10; i++) {
       // 控制列
       for (int j =1; j <= i; j++) {
            printf("%d×%d=%-2d ", i, j, i *j);
        }
        printf("\n");
    }


例二:打印三个数字(0 - 9)的组合可能(组合成三位数)

    // 控制百位
   for (int i =1; i <= 9; i++) {
       // 控制十位
       for (int j =0; j <= 9; j++) {
           //控制个位
           for (int k =0; k <= 9; k++) {
               // 输出三位数
                printf("%d%d%d ", i, j, k);
            }
        }
    }


break与continue的区别   

    break的作用跳出循环

   int i = 0;
   while (i < 100) {
        printf("%d", i);
        i++;
       if (i == 5) {
           break;
        }
    }


   continue 的作用;结束本次循环,继续下一次

   int j = 0;
   while (j < 100) {
       if (j == 5) {
           continue;
        }
        printf("%d",j);
        j++;
    }


arc4random()函数

例一:测试随机数,arc4random()返回一个unsigned int 类型的随机数

    unsigned int r = arc4random();
    // 无符号整型需要用%u作为转义字符
    printf("%u\n", r);
    // 如果想要指定范围内的随机数
    // arc4random() %(最大值 - 最小值 + 1) + 最小值
    int r1 = arc4random() % (35 - 15 + 1) + 13;
    printf("%d\n", r1);
    // 从0开始可以很直观的看出循环次数,并且数组也是从0开始
    int i = 0;
    while (i < 10) {
        //需要注意不要把arc4random()写在循环外
        int r2 = arc4random() % (35 - 15 + 1);
        printf("%d ", r2);
        i++;
    }
    // 最后加个换行,让控制台更整齐
    printf("\n");


    

   

    


    

    

    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值