#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\n", sizeof(BOOL)); // sizeof()是一个操作符,能够求到某个数据类型或者是变量所占的字节数
    
    BOOL isYes = YES; // 定义一个BOOL类型的变量,赋初值为YES
    BOOL isNo = NO;
    printf("%d --- %d\n", isYes, isNo);
    */
#pragma mark - 关系运算符:>、>=、<、<=、==、!=,目前已经学习了三种运算符,他们的优先级:算数运算符 > 关系运算符 > 赋值运算符
    BOOL bigger = 7 != 5;
    printf("%d\n", bigger);
    
    int num1 = (4 + 5) > 2;
    printf("num1 = %d\n", num1);
#pragma mark - 逻辑表达式:逻辑与(&&)、逻辑或(||)、逻辑非(!)
    int num1 = 1;
    int num2 = 0;
    BOOL isAnd = num1 && num2++; // 存在短路现象:表达式1 && 表达式2, 当表达式1的结果为假的时候,后面的表达式2就不会在执行,整个表达式的结果为假
    printf("isAnd = %d\n", num2);
    
    BOOL isHuo = num1 || num2++; // 逻辑或的短路现象: 表达式1 || 表达式2, 如果表达式1的结果为真的话,那么表达式2就不会再执行,整个表达式的结果为真
    printf("isHuo = %d, num2 = %d\n", isHuo, num2);
    printf("--- %d\n", !isHuo);

#pragma mark - if语句

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

#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\n", maxNum);

#pragma mark - switch-case

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

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

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

#pragma mark - for循环

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

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

C语言 ---- 循环分支 iOS学习-----细碎知识点总结的更多相关文章

  1. C语言 ---- 数组 iOS学习-----细碎知识点总结

    #pragma mark - 数组:用来存放同一数据类型的数据 // 数组的定义:类型说明符 数组名[常量表达式] = {值1, 值2, 值3...};    // 定义一个float类型的数组,用来 ...

  2. C语言 ---- 指针 iOS学习-----细碎知识点总结

    内存的访问形式:1.直接访问:通过变量名进行访问.2.间接访问:先找到变量存放的地址,然后根据地址去访问对应的内存空间. 指针--- // 定义一个整形指针变量,用来存储num1在内存中的地址    ...

  3. C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结

    函数的定义     返回值类型 函数名(形式参数列表) {        函数的实现     } 函数不允许嵌套定义 如果函数的定义在主调函数之后,那么要进行提前声明才能使用. // 匿名结构体,结构 ...

  4. C语言 ---- 基本数据类型和基本运算 iOS学习-----细碎知识点总结

    // 导入头文件(stdio.h),标准输入输出的头文件,#include <stdio.h> // 程序的入口int main(int argc, const char * argv[] ...

  5. OC ---- 字典集合 iOS学习-----细碎知识点总结

    实例方法的创建 NSDictionary *wukong = [[NSDictionary alloc] initWithObjectsAndKeys:", @"age" ...

  6. OC ---- 字符串 数组 iOS学习-----细碎知识点总结

    NSString *urlString = [NSString stringWithFormat:@"http://www.apple.com"];        // 获取字符串 ...

  7. IOS学习笔记48--一些常见的IOS知识点+面试题

      IOS学习笔记48--一些常见的IOS知识点+面试题   1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...

  8. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  9. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

随机推荐

  1. POJ2774 & 后缀数组模板题

    题意: 求两个字符串的LCP SOL: 模板题.连一起搞一搞就好了...主要是记录一下做(sha)题(bi)过程心(cao)得(dan)体(xin)会(qing) 后缀数组概念...还算是简单的,过程 ...

  2. android service 如何弹出dialog

    在service中弹出toast,需要使用handler, handler.post(new Runnable() { @Override public void run() { Toast.make ...

  3. Leetcode Partition List

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...

  4. 洛谷 P1433 吃奶酪 Label:dfs && 剪枝Ex

    题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...

  5. Collections.sort的三种用法

    /** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...

  6. [深入浅出WP8.1(Runtime)]生成图片和存储生成的图片文件

    7.2.3 使用RenderTargetBitmap类生成图片 RenderTargetBitmap类可以将可视化对象转换为位图,也就是说它可以将任意的UIElement以位图的形式呈现.那么我们在实 ...

  7. children和childNodes的区别

    children和childNodes 1,childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当no ...

  8. db2icrt创建实例,提示主机名无效

    有这样一个现象,在DB2安装后,使用db2icrt 来创建实例时,提示主机名无效,提示如下:   [root@centos-0 instance]# ./db2icrt -u db2inst1 db2 ...

  9. 地理数据库的类型geodatabase类型

    地理数据库的类型geodatabase类型 地理数据库是用于保存数据集集合的“容器”.有以下三种类型: 文件地理数据库 - 在文件系统中以文件夹形式存储.每个数据集都以文件形式保存,该文件大小最多可扩 ...

  10. Express 路由

    路由 路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求. 路由是由一个 URI.HTTP 请求(GET.POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [ ...