• C语言 ---- 循环分支 iOS学习-----细碎知识点总结


    #import <Foundation/Foundation.h>  // #import是OC种的导入头文件或者是系统框架的指令

    // 定义了一个Season枚举类型
    enum Season {
        Spring = 1, // 值默认是从0开始,后面的依次加1
        Summer,
        Autumn,
        Winter
    }; // ";"不能省略
    int main(int argc, const char * argv[]) {
        
        /*
        // 在C语言中,c89中是没有bool类型存在的,c99中增加了bool类型,是一种"非0即真"的数据类型,true和false
        // 在OC中,有BOOL数据类型,"非真即假",值只有YES和NO,YES代表表达式的结果为真,NO代表表达式的结果为假
        printf("%lu ", sizeof(BOOL)); // sizeof()是一个操作符,能够求到某个数据类型或者是变量所占的字节数
        
        BOOL isYes = YES; // 定义一个BOOL类型的变量,赋初值为YES
        BOOL isNo = NO;
        printf("%d --- %d ", isYes, isNo);
        */
    #pragma mark - 关系运算符:>、>=、<、<=、==、!=,目前已经学习了三种运算符,他们的优先级:算数运算符 > 关系运算符 > 赋值运算符
        BOOL bigger = 7 != 5;
        printf("%d ", bigger);
        
        int num1 = (4 + 5) > 2;
        printf("num1 = %d ", num1);
    #pragma mark - 逻辑表达式:逻辑与(&&)、逻辑或(||)、逻辑非(!)
        int num1 = 1;
        int num2 = 0;
        BOOL isAnd = num1 && num2++; // 存在短路现象:表达式1 && 表达式2, 当表达式1的结果为假的时候,后面的表达式2就不会在执行,整个表达式的结果为假
        printf("isAnd = %d ", num2);
        
        BOOL isHuo = num1 || num2++; // 逻辑或的短路现象: 表达式1 || 表达式2, 如果表达式1的结果为真的话,那么表达式2就不会再执行,整个表达式的结果为真
        printf("isHuo = %d, num2 = %d ", isHuo, num2);
        printf("--- %d ", !isHuo);

    #pragma mark - if语句

    printf("请输入CET-4分数: ");
        int score = 0;
        scanf("%d", &score); // 用score来接收我们输入的成绩
        getchar(); // 取出键盘缓存区的换行符
        if (score >= 425) {
            printf("恭喜你,成绩合格! ");
        }
        printf("if语句执行完毕 ");

    #pragma mark - 条件运算符

     // 输出两个数中的最大数
        int num1 = 12, num2 = 20;
        int maxNum = 0; // 用来接收最大值
    //    if (num1 > num2) {
    //        maxNum = num1;
    //    } else {
    //        maxNum = num2;
    //    }
        maxNum = num1 > num2 ? num1 : num2; // 条件运算符"条件表达式 ? 表达式1 : 表达式2"
        printf("最大值为:%d ", maxNum);

    #pragma mark - switch-case

    // 输入数字1、2、3、4,分别输出春夏秋冬的英文单词
        printf("请输入1~4之间的数字: ");
        int season = 0;
        scanf("%d", &season);
        switch (season) {
            case Spring:
            {
                int num = 10; // 如果在case语句中定义变量的话,那么必须要加""
                printf("Spring "); // 如果在case语句中不加break的话,那么会执行满足条件的case情况后面的所有的case语句
                break;
            }
            case Winter:
            {
                printf("Winter ");
                break;
            }
            case Summer:
            {
                printf("Summer ");
                break;
            }
            case Autumn:
            {
                printf("Autumn ");
                break;
            }
            default:
            {
                printf("您的输入有误,请按照提示重新输入. ");
                break;
            }
        }
        enum Season aSpring = Spring; // 定义一个枚举类型的变量, 并且给予初值
        return 0;
    }
    #pragma mark - while循环

    // 一直输出大水表
        while (YES) { // 1、循环条件
            printf("大水表 "); // 2、循环体
        }
    // 输出10编大水表
        int count = 0; // 定义一个整形变量int,用来记录输出的大水表的次数
        while (count < 10) {
            printf("大水表 ");
            count++; // 记录输出的次数,每执行一次循环体,该变量值加1
        }
    // 输出1~100之间7的倍数
        int num = 1;
        while (num <= 100) {
            if (num % 7 == 0) {
                printf("%d ", num);
            }
            num++; // 循环增量的改变
        }
    // 输出1~100之间的个位为7的数
        int num = 1; // 1、循环变量的初始化
        while (num <= 100) { // 2、循环条件
            // 3、循环体
            if (num % 10 == 7) {
                printf("%d是个位为7的数 ", num);
            }
            num++; // 4、循环增量的改变
        }
    // 输出1~100之间十位数为7的数
        int num = 1; // 1、循环变量的初始化
        while (num <= 100) { // 2、循环条件
            // 3、循环体
            if (num / 10 == 7) {
                printf("%d是十位为7的数 ", num);
            }
            // 4、循环增量的改变
            num++;
        }
    #pragma mark - 随机数
    // 负数在计算机中是以补码的形式进行存储的,补码是由反码加1的到的,反码是由原码按位取反得到。
        int num = -1;
        printf("num = %lu ", num);
    // 随机产生一个数字
    printf("randomNumber = %u", arc4random());
    // 随机产生[0, 30]之间的随机数
        int num = arc4random() % 31;
        printf("num = %d ", num);
        
        // 随机产生[10, 30]之间的随机数
        int randomNum = arc4random() % (30 - 10 + 1) + 10;
        printf("randomNum = %d ", randomNum);

    #pragma mark - break, 结束本层循环, continue,结束本次循环
    int num = 0;
        while (num < 5) {
            if (num == 3) {
    //            break; // 结束本层循环
                num++;
                continue; // 结束本次循环,继续进行条件的判定
            }
            printf("%d ", num);
            num++;
        }
    #pragma mark - do-while循环,无论循环条件是否满足,先执行一次循环体,也即是循环体至少执行一次
    int num = 1;
        
        do {
            printf("你打我啊 ");
        } while (num > 1);

    #pragma mark - for循环

    // 打印1~100之间7的倍数
        for (int i = 1; i < 101; i++) {
            if (i % 7 == 0) {
                printf("%d是7的倍数 ", i);
            }
        }
    #pragma mark - 循环嵌套

     // 打印九九乘法表
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < i + 1; j++) {
                printf("%d × %d = %d ", j + 1, i + 1, (j + 1) * (i + 1)); // " "使输出对齐
            }
            printf(" ");
        }

  • 相关阅读:
    BZOJ2243: [SDOI2011]染色(树链剖分/LCT)
    BZOJ2157: 旅游(LCT)
    BZOJ3510首都(LCT)
    BZOJ4530 [BJOI2014]大融合(LCT)
    BZOJ2631: tree(LCT)
    BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊(LCT)
    BZOJ3282: Tree (LCT模板)
    [NOI2008]假面舞会(DFS)
    斜率优化dp练习
    BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
  • 原文地址:https://www.cnblogs.com/pp123/p/4945070.html
Copyright © 2020-2023  润新知