进击的KFC:第二节:C语言:关系运算符、逻辑运算符、if 、条件运算符、switch..case的学习

(一).    第二天所学内容全部知识点汇总:
1.宏定义:C语言中的一种预处理的方式
   格式: #define 宏名  字符串  // 结束时千万不要加分号
2.关系运算符:( > >= < <= 同优先级) 优先级高于  (== !=)
   注意:判断两个数是否相等,用==
3.逻辑运算符:  &&一假即假      ||一真即真  所以会出现短路现象.    终极口诀:非 0 即 真!
4. 程序的三中结构:顺序结构,分支结构,循环结构
if语句是有三种形式的分支结构
5.条件表达式(三目运算符)
   格式:   判断条件  ?   返回值1 : 返回值2;
如果判断条件成立,返回返回值1,反之,返回返回值2;
6.枚举型: enum seasson {
                       spring,
                       summer = 13,
                       autumn,
                       winter
                     };   // 分号结尾
    枚举型属于构造类型.
    格式:enum 枚举名 {枚举值表};
    目的:提高程序的可读性
 7.switch语句:
   switch(整型表达式)
        {
          case 值1:{语句1; break;}
          case 值2:{语句2; break;}
          case 值3:{语句n; break;}
              ...
         default:{语句n + 1;break;}
        }
     break⽤在switch...case中⽤于结束某个case,然后执                     ⾏switch之外 的语句  
注意事项:
switch语句和if-else级联式⽐较,switch语句往往⽐级联式更容易阅 读,更直观。 switch—开关,case—情况,开关决定发⽣的情况。 case后边的标签只能是整型常量或者整型常量表达式,不能⽤变量 作为case的标签。
整个default语句都可以舍掉
多个case可以运⾏⼀个语句块
case中定义变量需要加{}


(二) 具体代码实例
//友情提示:代码在调试时请一段段 解注释符号后调试,有些变量取的时候重名了,而且一段段看有助于理解

#import <Foundation/Foundation.h>


    // 宏定义 吧工程中 所有的KFC 全部替换成10

    // 是替换过程 结束时千万不要加分号

    #define KFC 20


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

    

    

    // BOOL是一种数据类型

    // TA的值只有01

    // 系统通过预编译 0编译成NO, 1编译成YES

    // 所以咱们在工程中一般只看见yes no

    

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

    

    // 声明一个BOOL变量 初值为NO

    // bool 是在C语言中使用的,true,false

    // BOOL OC中使用的, yes,no

    BOOL b = YES;

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

//  bool a = true;

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

    

    // 定义两个整形变量比较大小

    int n1 = 2;

    int n2 = 3;

    // 关系运算符 > >= < <=   == !=

    // 如果成立的话 返回yes也就是1 反之NO也就是0

    // 关系运算符优先级

    // (> >= < <= 同级关系) 大于 (==  !=)

    BOOL res = n1>=n2;

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


    // 注意 == 是判断两边是否相等 是双等号

    // 练习: 1 == 3 > 1  相当于 1 == (3 > 1)

    // 声明BOOL变量接收 返回结果

    BOOL res1 = 1 == 3 > 1;

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

   

    

    // 逻辑运算符 && || !

    // && 一假则假(必须两边全真,整个逻辑表达式为真)

    // || 一真则真(必须两边全假,整个逻辑表达式才为假)

    // !  取反

    // 终极口诀:0即真

    

    // 逻辑与短路现象

    // 逻辑与 如果前面的为假,那么后面就不执行了 这就是短路现象

    int d = 5;

    int e = 10;

    BOOL res2 = d > e && d++; //d不为0,所以右侧为真

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

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

    

    // 逻辑或的短路现象

    // 逻辑或 如果前面的为真,那么后面就不执行了 整个表达式为真

    int f = 4;

    int g = 7;

    BOOL res3 = f < g || f++;

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

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

    

    

    // 程序的三种结构

    // 1.顺序结构

    // 2.分支结构(重点) 通过一个判断 来选择执行哪个语句

    // 3.循环结构

    

    // if 语句写法

    /*

     

      if(判断语句){

     

         要执行语句

     

     }

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

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

     

     */

    // 需求:定义两个整形变量 如果a > b 打印a b

    int h = 5;

    int i = 7;

    if(h > i) {

        printf("h<i\n");

    }

    

    // 如果从控制台输⼊⼀个字符,如果输⼊的是m,则输出男性,否则输出⼥性,那怎么实现呢?

//    char j = 0;

//    printf("输入一个字符:");

//    scanf("%c",&j);

//    if(j == 'm') {

//    

//        printf("man");

//    }

//    else {

//        printf("woman");

//    }

    

 

    

    // if 语句的第二种形式

    /*

     

     if(判断条件){

        

        语句1;

     }else{

        

        语句2;

     }

     

     不管if语句是哪种形式,首先要看判断条件

     条件成立 执行语句1     条件不成立,执行语句2

     */


    // 如果条件成立 就执行条件后精耕的大括号

    // 如果条件不成立 就只想else后面的大括号

    // 终极口诀 : 分枝结构中 只执行一个分之中的语句

   

    

    // 输⼊⼀个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。

    // 判断条件:能被4整除且不能被100整除, 或者 能被400整除

//    int year = 0;

//    printf("输入一个年份:");

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

//    // 定义一个BOOl类型变量来接收一下

//    BOOL r1 = year % 4 == 0 && year % 100 !=0;

//    BOOL r2 = year % 400 == 0;

//    

//    if ( r1 || r2) {

//        printf("%d是闰年",year);

//    }else{

//    

//        printf("%d不是闰年",year);

//    }

    

    

      // if 的第三种形式 (级联式)

      /*

         if (判断条件1) {

       

           语句1;

       } else if(判断条件2{

       

           语句2;

       }

         else {

       

           语句3;

       

       }

       

       

       

       */

 // 练习    

//    从键盘输⼊⼀个字符,如果是数字打印this is digital,如果是⼤写字

//    ⺟,打印this is capital letter,如果是⼩写字⺟,打印this is letter

//    如果是其他字符,打印other

    

    // 实际上 输入一个字符 相当于 输入一个0-255的数

//    char j = 0;

//    printf("输入一个字符:");

//    scanf("%c",&j);

//    if(j >= 'A' && j <= 'Z'){

//        

//        printf("大写字母");

//    } else if (j >= 97 && j <= 122){

//    

//        printf("小写字母");

//    } else if (j >='0' && j <= '9'){

//    

//        printf("数字");

//    } else{

//        printf("其他字符");

//    }

//    

    

    

    

    // 条件表达式 (三目运算符)

    // 判断条件 ? 返回值1 : 返回值2;

    // 如果判断条件成立,就返回返回值1,反之 返回返回值2;

    // 需求:丁一两个整形变量, 打印 比较大的一个(利用条件表达式)

//    while (1) {

//        int n3 = 0;

//        int n4 = 0;

//        printf("输入两个数:");

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

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

//        printf("较大值为:%d\n",n3 > n4 ? n3 : n4);

//    }

   

    

    

    // 枚举类型

    /*

     

       定义枚举类型

       enum 枚举类型的名字 {

     

        枚举值的列表


       };

     

     */

    // 需求:创建四季的枚举

    // 枚举的值默认从0开始 依次递增

    // 也可以 指定枚举的值

       enum season{

        spring,      // 注意枚举值要用逗号隔开

        summer = 11,

        autumn,

        winter

    };

    


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

    

    

    // switch 语句

    /*

     

     switch (整形表达式(数字或者字符)) {

     case 1(数字或者字符):

     执行语句1;

     break;   // 跳出整个switch语句

     

     case 2(数字或者字符):

     执行语句2;

     break;   // 跳出整个switch语句

     ......

     default:

     语句     // 如果前面的case都没有匹配上,就执行这句语句

     break;

     }


     */

    

    

    // 从控制台输⼊1~4,对应打出春夏秋冬的英⽂词。

    

    while(1)

    {

        int x = 0;

        printf("\n输入1-4:");

        scanf("%d",&x);

        switch (x) {

            case 1:

            

             {

                printf("spring\n");

                int yy = 0;

                printf("%d",yy);

             }

                break;

            case 2:

                printf("summer\n");

                break;

            case 3:

                printf("autumn\n");

                break;

            case 4:

                printf("winter\n");

                break;


    

              // 1.default可以省去

              // 2. default位置可以变 只要有case没有匹配成功,就会去执行default后面的语句

            default:

                printf("请输入正确的1-4数字\n");

                break;

        }

     }

    


    return 0;


}










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值