iOS开发学习之C语言---C03 循环结构

来源:互联网 发布:java接受formdata 编辑:程序博客网 时间:2024/05/20 16:34

//

//  main.m

//  CLesson03

//

//  Created by 亮亮 on 15/10/9.

//  Copyright (c) 2015 Darling.com. All rights reserved.

//  while循环、do..while 循环、for循环


#import <Foundation/Foundation.h>


int main(int argc,const char * argv[]) {

    

    //    printf("志南是大帅哥!");

    

#pragma mark while循环

    //    while (条件表达式(满足循环的条件)) {

    //        语句;(循环体)

    //    }

   //

    //    int num = 0; // 循环变量

    //    while (num < 10) { // 判断循环变量是否满足循环条件

    //        printf("志南是大帅哥!当前打印第%d\n", num);

    //        num++; // 循环增量

    //    }

    

    //     练习:求 1+2+3+4+5的和,用while循环实现

    //     1.定义一个循环变量,同时可以充当加数

    //    int num = 0;

    //    // 2.定义一个变量,保存和

    //    int sum = 0;

    //    // 3.开始循环,利用循环增量,依次将循环变量(也就是加数加一)

    //    while (num < 5) {

    //        num++;

    //        sum = sum + num;

    //    }

    //    printf("sum = %d\n", sum);

    

    // 使用循环打印【1100】的数

    //    int num = 1;

   //

    //    while (num <= 100) {

    //        printf("%d\n",num);

    //        num++;

    //    }

    

    

    //使用循环打印【1100】之间7的倍数

    //    int num = 1;

   //

    //    while (num <= 100) {

    //        int temp = num % 7;

    //        if (temp == 0) {

    //            printf("%d\n",num);

    //        }

    //        num++;

    //    }

    

    //使用循环打印【1100】之间个位是7的数

    //    int num = 1;

   //

    //    while (num <= 100) {

    //        int temp = num % 10;

    //        if (temp == 7) {

    //            printf("%d\n",num);

    //        }

    //        num++;

    //    }

    

    //     使用循环打印【1100】之间十位是7的数

    //    int num = 1;

   //

    //    while (num <= 100) {

    //        int temp = num / 10;

    //        if (temp == 7) {

    //            printf("%d\n",num);

    //        }

    //        num++;

    //    }

    

#pragma mark 随机数

    //    arc4random();用来产生一个随机数的函数

    //    int a = arc4random(); // 使用系统函数产生一个随机数,并交给变量a保存

    //    printf("a = %d\n", a);

    //    int a = arc4random() % 10; // 产生的数字不会超过10,因为用10对随机数取余数操作,它的余数永远不会超过10,余数不为负数

    //    printf("a = %d\n", a);

    

    //产生一个【010】的随机数

    //    int a = arc4random() % 11;

    //    printf("a =  %d\n", a);

    

    // 产生一个【1020】的随机数

    //    int b = arc4random() % (10 + 1) + 10;

    //    printf("b = %d\n", b);

    

    // 产生一个【1520】的随机数

    // 要取一个【ab】范围内的随机数,公式是:arc4random() % (b - a + 1) + a;

    //    int b = arc4random() % (15 + 1) + 15;

    //    printf("b = %d\n", b);

    

    

    //练习:从控制台接收一个数n,随机产生【0n】范围内的随机数

    //    int n ;

   //

    //    printf("请任意输一个数:");

    //    scanf("%d", &n);

   //

    //    int c = arc4random() % (n + 1) ;

    //    printf("c = %d\n", c);

    

    

    // 用户从控制台输入一个n,while打印n个随机数(范围为[10~30])

    // 1.定义一个变量,用来盛放用户输入的数字

    //    int n ;

    //    printf("请任意输一个数:");

    //    // 2.使用输入函数,来保护用户输入的数字

    //    scanf("%d", &n);

    //    // 3.使用while循环来控制打印次数

    //    // 3.1定义一个循环增量

    //    int temp  =0;

    //    // 3.2判断循环增量是否满足循环条件

    //    while ( temp < n) {

    //        // 3.3保存生成的随机数

    //        int num = arc4random() % (20 + 1) + 10 ;

    //        printf("当前第%d次打印,随机数是%d\n", temp, num);

    //        temp++;

    //    }

   //

    

    //用户从控制台输⼊一个n,while打印n个随机数(范围为[30~70]),找出n个随机数中的最大值。

    

    //    // 1.定义一个变量,用来存放用户输入的数字

    //    int n ;

    //    printf("请任意输一个数:");

    //    // 2.使用scanf函数,来保护用户输入的数字

    //    scanf("%d", &n);

    //    // 3.使用while循环来控制打印次数

    //    // 3.1定义一个循环增量

    //    int temp  =0;

    //    // 3.1.1 定义一个变量,用来保存当前最大值

    //    int maxValue =0;// "驼峰命名法":从第二个单词开始,每个单词的首字母大写

    //    // 3.2判断循环增量是否满足循环条件

    //    while ( temp < n) {

    //        // 3.3保存生成的随机数

    //        int num = arc4random() % (40 + 1) + 30;

    //        printf("当前第%d次打印,随机数是%d\n", temp, num);

    //        if (maxValue < num) {

    //            maxValue = num;

    //        }

    //        // 3.4循环变量加一

    //        temp++;

    //    }

    //    // 4.将生成的全部随机数逐一比较后,才能确定最大的数字,并输出

    //    printf("其中最大随机数是%d\n", maxValue);

    

    //    // 1.定义一个变量,用来存放用户输入的数字

    //    int n ;

    //    printf("请任意输一个数:");

    //    // 2.使用scanf函数,来保护用户输入的数字

    //    scanf("%d", &n);

    //    // 3.使用while循环来控制打印次数

    //    // 3.1定义一个循环增量

    //    int temp  =0;

    //    // 3.1.1 定义一个变量,用来保存当前最大值

    //    int maxValue =0;// "驼峰命名法":从第二个单词开始,每个单词的首字母大写

    //    // 3.2判断循环增量是否满足循环条件

    //    while ( temp < n) {

    //        // 3.3保存生成的随机数

    //        int num = arc4random() % (40 + 1) + 30;

    //        printf("当前第%d次打印,随机数是%d\n", temp, num);

    //        maxValue = maxValue > num ? maxValue : num; //?:条件运算符的巧妙使用!

    //        // 3.4循环变量加一

    //        temp++;

    //    }

    //    // 4.将生成的全部随机数逐一比较后,才能确定最大的数字,并输出

    //    printf("其中最大随机数是%d\n", maxValue);

    

#pragma mark breakcontinue

   /*

     break : 跳出本层 循环,如果外层还有循环的话,则执行外层的循环,如果外层没有循环,则执行循环后面的代码

     continue : 结束本次 循环,遇到continue后,不管continue后边有无代码,均不执行,提前结束当前循环,开启下一次循环

     */

    

    //练习:依次输出1——50之间的数,当输出45后,停止输出

    //    // 1.定义一个循环变量

    //    int num = 0;

    //    // 2.使用while开启循环

    //    while (num <= 50) {

    //        if (num == 45) {

    //            break;

    //        }

    //        num++;

    //        printf("%d\n",num);

    //    }

    

    //练习:依次输出1——50个位为零的数

   /*

     // 1.定义一个循环变量

     int num = 0;

     // 2.使用while开启循环

     while (num < 50) {

     //        printf("%d\n",num);

     num++;

     if (num % 10 == 0) {

     continue;

     }

     printf("%d\n",num);

     }

     */

    

    /*do...while...先执行循环体,再判断是否满足循环条件,如果满足,则继续循环到不满足为止,如果不满足,则不在开启第二次循环,直接执行后边的代码

     */

    

    //    int n = 0;

    

    //    while (n < 5) {

    //        printf("当前做了%d\n",n);

    //        n++;

    //    }

    

    //    do{

    //        printf("当前做了%d\n",n);

    //        n++;

    //    }while (n < 5);

    

#pragma mark for循环

   /*

     for循环的语法:

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

     循环体

     }

     

     for循环的执行顺序是:循环变量初始化-》判断循环条件是否成立-》循环体-》循环增量-》判断循环条件是否成立》(成立,依次循环下去,直到不成立为止),不成立,跳过循环,继续向后执行

     */

    

    // for打印出1~100之间7的倍数。

    //    for (int i = 1; i <= 100; i++) {

   //

    //        if (i % 7 == 0) {

    //            printf("%d\n",i);

    //        }

    //    }

    

    // for打印出1~100之间个位为7的数。

    //    for (int i = 1; i <= 100; i++) {

    //        if (i % 10 == 7) {

    //            printf("%d\n", i);

    //        }

    //    }

    

    // for打印出1~100之间十位为7的数。

    //    for (int i = 1; i <= 100; i++) {

    //        if (i / 10 == 7) {

    //            printf("%d\n", i);

    //        }

    //    }

    

    //for打印出1~100之间不是7的倍数并且不包含7的数。

    //    for (int i = 1; i <= 100; i++) {

    //        if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7 ) {

    //            printf("%d\n",i);

    //        }

    //    }

    

#pragma mark 循环嵌套

    

    // 第一步:打印123

    //    for (int i = 1; i <= 3; i ++) {

    //        printf("%d", i);

    //    }

    

    // 第二步:打印

   /*

     123

     123

     123

     */

    //    for (int i = 1; i <= 3; i++) {

    //        for (int j = 1; j <= 3; j++) {

    //            printf("%d", j);

    //        }

    //        printf("\n");

   //

    //    }

    

    // 第三步:打印

   /*

     1

     12

     123

     */

    //    for (int i = 1; i <= 3; i++) { // 外层循环控制打印的行数

   //

    //        for (int j = 1; j <= i; j++) { //内层循环控制每行打印了多少次,和每次打印的数字是几

    //            printf("%d ", j);

    //        }

   //

    //        printf("\n");

   //

    //    }

    

    // 打印乘法口诀表

    //两层循环,外层控制打印的行数(共9行),内层控制每行打印的次数(当前是第几行,就打印几次(几列))

    //    for (int i = 1; i <= 9; i++) {

    //        

    //        for (int j = 1; j <= i; j++) {

    //            printf(" %d * %d = %-2d ", j, i, j*i); // %-2d控制长度

    //        }

    //        

    //        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 ", i*100+j*10+k);

            }

            

        }

        

    }

    

    

    

   /*

     总结

     for最常⽤,通常⽤于知道循环次数 的循环。(能用for循环一定能用while循环)

     while也很常⽤用,通常用于不知道循环次数 的循环。(能用while循环不一定能用for循环)

     do...while不是特别常用,通常⽤用于需要先执⾏行一次的循环。

     break跳出本层循环,continue结束本次循环。通常与if连用。

     */

    

   return 0;

}


0 0
原创粉丝点击