#import <Foundation/Foundation.h>
// 宏定义  吧工程中 所有的WL  全部提换成 10
// 是替换的过程 千万结束时不要加分号
#define WL 10
int main(int argc, const char * argv[]) {
//    int a = 0;
//    float b = 0;
//    printf("请输入一个整数,再输入一个浮点型:\n");
//    scanf("%d,%f",&a,&b);
//    float result = a + b;
//    float sub = a - b;
//    float mul = a * b;
//    float div = a / b;
//    printtf("result:%f\n,sub:%f\n,mul:%f\n,div:%f\n",result,sub,mul,div);





    // Bool是一种数据类型
    // 它只有0和1两个值
    // 系统通过预编译 吧0编译成NO 吧1编译成YES
    // 所以咱们再工程中一般只看见YES和NO
    
    // bools是C语言中使用的
    // BOOL是OC中使用的
    // 声明一个BOOL变量 初值为NO
//    BOOL b = NO;
//    printf("%d",b);
    
    // 定义两个整型变量 比较大小 打印比较结果
//    int number1 = 5;
//    int number2 = 10;
    // 关系运算符 > >= < <= == !=
    // 如果成立的话 返回YES也就是1 反之NO也就是0
    // 关系运算符优先级
    // ( > >= < <= 同级关系 ) 大于 (== !=)
//     BOOL result  = number1 < number2;
//    printf("%d",result);
    // 注意 == 是判断两边是否相等 是爽等号
    
    
    // 练习 1 == 3 > 1  相当与 1 ==  (3 > 1)
    // 声明BOOL变量接收  返回结果
//    BOOL result1 = 1 == 3 > 1;
//    printf("%d",result1);
//    
    // 逻辑运算符 && || !
    // && 一假则假(必须两边 全是真的 整个逻辑表达式才是真的)
    // || 一真则真(必须两边全是假的 整个逻辑表达式才是假的)
    // ! 对结果进行取反 非真即假
    // 终极口诀: 非零即真
    
    // 逻辑与短路现象
    // 逻辑与 如果前面的为假 那么后面的就不执行了 这就是短路现象
//    int a = 5;
//    int b = 10;
//    BOOL result = a > b && a++;
    // 逻辑或的短路现象
    // 逻辑或 如果前面的为真 整个表达试就为真 那么后面的就不去执行了 这就是短路现象
//    int a = 5;
//    int b = 10;
//    BOOL result = a > b || a++;
    
    // 程序的三种结构
    // 1.顺序结构
    // 2.分支结构(重点)通过一个判断 来选择执行那个语句
    // 3.循环结构
    
    
    
    // if 语句 写法
    /*
      if(判断语句){
        
        要执行语句
     
      }

    如果判断语句为真 就执行打括号中的语句

    如果判断语句为假 就跳过大括号中的语句(不执行)

*/
    
    // 需求: 定义两个整型变量 如果a>b的话 打印 a比b大
//    int a = 10;
//    int b = 5;
//    if(a > b){
//        printf("打印");
//    }
//
    // 练习: 控制台 输入一个字符 如果 输入的是M,则输出男性 否则声明都不输出
//    char a = 0;
//    printf("请输入一个字符");
//    scanf("%c",&a);
//    if (a == 'm') {
//        printf("男性");
//    }
    
    // 练习2: 如果从控制台 输入一个字符 如果 输入的是M,则输出男性,否则输出女性, 那怎么实现哪?
    
//    char a = 0;
//    printf("请输入一个字符");
//    scanf("%c",&a);
//    if (a == 'm') {
//    printf("男性");
//        }
//    if (a !='m') {
//        printf("女性");
//    }
    
    
    // if语句的第二种形式
    /*
        if(判断条件){
     
          语句1;
     
     
     }else{
     
     
        语句2;
     
     
     }

    

    不管if语句那种形式  首先要看的  就是判断条件

    条件成立 执行语句1

    条件不成立 执行else后面打括号的部分 语句2

*/
    
    
    // 练习2: 如果从控制台 输入一个字符 如果 输入的是M,则输出男性,否则输出女性, 那怎么实现哪?
//    char c = 0;
//    printf("请输入一个字符");
//    scanf("%c",&c);
//    if (c == 'm') {
//        printf("男性");
//    } else {
//        printf("女性");
//    }
    
    // 如果条件成立 就执行条件后紧跟着的大括号
    // 如果条件不成立 就执行else后面的大括号
    // 终极口诀: 分支结构中 只执行一个分支中的语句
    
    
    
//    int year = 0;
//    printf("请输入一个年份");
//    scanf("%d",&year);
//    
//    // year % 4 == 0 && year & 100 != 0
//    // ||year % 400 == 0
//    
//    // 能被几整除就相当于对几取余等于0
//    
//    // 定义一个BOOl类型变量 来接受一下
//    BOOL result1 =( year % 4 == 0  && year% 100 !=0);
//    BOOL result2 = (year % 400 ==0);
//    if (result1 || result2) {
//        printf("闰年");
//    } else {
//        printf("不是闰年");
//    }
//    if (( year % 400 == 0 ) || (year / 4 == 0) && ( year / 100 != 0 ) ) {
//        printf("闰年");
//    } else {
//        printf("不是闰年");
//    }
    
    
    // if语句的第三种形式(级联式)
    /*
       
     if(判断条件1){
     
         语句1;
     
     }else if (判断条件2){
     
     
         语句2;
     
     }else if (判断条件3){
    
    
        语句3;
     
     }else { 
     
     
        语句4
     
     
     }
     */
     
     // 首先先判断条件1
     // 不成立 不执行语句1
     // 继续判断条件2
     // 不成立 不执行语句2......
     // 如果前面 全不成立  else后面又没有判断条件
     //   那么执行 else后面大括号中的语句
    
    
    
     // 从键盘输个字符,如果是数字打印this is digital,如果是写字,打印this is capital letter,如果是写字,打印this is letter,如果是其他字符,打印other。
    // 实际上 输入一个字符 就 相当于 输入一个0-255的数
    
//    
//    char c = '0';
//    printf("请输入一个字符\n");
//    scanf("%c",&c);
//    if (c >= '0' && c <= '9') {
//        printf("是数字");
//    } else if(c >= 'A' && c<='Z'){
//        printf("是大写字母");
//    } else if(c >='a' && c <='z'){
//        printf("是小写字母");
//    
//    } else{
//    
//        printf("是其他");
//    }
//    
    
    
    // 条件表达式 (三目运算符)
    // 判断条件 ? 返回值1 : 返回值2;
    // 如果判断条件成立 就返回返回值1 反正返回返回值2
    
    // 需求: 定义两个整型变量 打印 比较大的一个(利用条件表达式)
//    int a =5;
//    int b =10;
//    int max = a > b ? a : b;
//    printf("max = %d",max);
    
    
    // 枚举类型
    /*
     定义枚举类型
     enum 枚举类型名字{
     
     
           枚举值的列表
     
     };
     
     // 需求: 创建一个枚举 枚举的值分别为 春夏秋冬
     
     
     
     */
     // 枚举的值 默认是0开始 依次递增
     // 也可以 指定枚举的值
//    enum season {
//         spring, // 注意 枚举值要用逗号隔开
//         summer,
//         autumn,
//         winter
//    
//    }
    
    
    // switch语句
    /*
     switch (整型表达式(数字或者字符)) {
     case 值1(数字或者字符):
          执行的语句1
     break;//跳出整个switch语句
     
     default:
     如果前面的case都没有匹配上 就执行default后面的语句
     break;
     }
     
     
     
     
     
     */
    // 定义一个枚举 提高代码的阅读性
    // 1.default可以省去
    // 2.default位置 可以变 只要所以case没有匹配成功,就会去执行default后面语句
    enum season {
        // 枚举的值 默认是从0开始
         spring = 1,
         summer,
         automn,
         winter
       
    
    
    };
    
    
   return 0;



转载于:https://blog.51cto.com/191425207/1701599