小小君的C语言第二课

#import <Foundation/Foundation.h>



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

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

#define DJ 10


#define YES 1;


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

    //限时练习

    

   //创建整型变量

    int a = 0;

    //创建浮点型变量

    float b = 0.0;

    float sum = 0.0;

    printf("输入一个整数和一个浮点数,以逗号隔开:\n");

    scanf("%d,%f",&a,&b);

    sum = a + b;

    printf("sum = %f",sum);

    

    // BOOL是一种数据类型

    // 它只有01两个值

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

    // 所以咱们在工程中一般只能看见yesno

    

    

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

    

    

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

    // boolC语言中使用的

    // BOOLOC中使用的

    BOOL b1 = YES;

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

    

    // 定义两个整型变量 比较大小 打印比较结果

    int number1 = 5;

    int number2 = 10;

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

    // 如果成立 返回YES也就是1 反之NO也就是0

    // 关系运算符优先级

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

    BOOL result = number1 < number2;

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

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

    

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

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

    BOOL result1 = 1 == 3 > 1;

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

    

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

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

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

    // ! 对结果进行取反 非真即假

    // 终极口诀: 非零即真

    

    

    // 逻辑与短路现象

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

    int aa = 5;

    int bb = 10;

    BOOL result2 = aa > bb && aa++;  //aa=5,如果是aa < bb ,aa=6

    

    // 逻辑或短路现象

    // 逻辑或 如果前面为真 整个表达式为真 那么后面的就不去执行了 这就是短路现象

    BOOL result3 = aa > bb || aa++;    //aa=6,如果aa < bb ,aa=5

    

    

    // 程序的三种结构:顺序结构,分支结构,循环结构

    // 分支结构  通过一个判断 来选择执行哪个语句

    

    // if语句的写法

    /*

     if(判断语句){

        要执行的语句

     }

     

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

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

     

     */

    

    // 需求: 定义两个整型变量 如果a > b的话,打印 ab

    

    

    int a1 = 5;

    int b2 = 4;

    if(a1 > b2){

        printf("ab\n");

    }

    

   // 声明一个字符型变量

    char c = 0;

    printf("请输入字符:\n");

    scanf("%c",&c);

    //进行判断

    if (c == 'm') {

        printf("男性\n");

    }

    if (c != 'm') {

        printf("女性\n");

    }

    

    //if语句的第二种形式

    

    /*

        if(判断条件){

            语句1;

        }else{

            语句2;

        }

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

     条件成立  执行语句1

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

     

     */

    if (c == 'm') {

        printf("男性\n");

    }else{

        printf("女性\n");

    }

    //如果条件成立 就执行条件后紧跟着的大括号

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

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

    

    printf("请输入年份:\n");

    int year = 0;

    scanf("%d",&year);

    

    BOOL result5 = (year % 4 == 0 && year % 100 != 0);

    BOOL result4 = (year % 400 == 0);

    if (result5 || result4) {

        printf("该年是闰年\n");

    }else{

        printf("该年不是闰年\n");

    }

    

    if (year % 400 == 0 || (year % 4 == 0  && year % 100 != 0)) {

        printf("该年是闰年\n");

    }else{

        printf("该年不是闰年\n");

    }

    

    

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

    /*

     if(判断条件1){

        语句1;

     }else if(判断条件2){

        语句2;

     }else if(判断条件3){

        语句3;

     }else{

        语句4;

     }

     

     首先判断条件1 ,不成立 不执行语句

     继续判断条件2,不成立 不执行语句2....

     如果前面全不成立 else后面又没有判断条件,那么执行 else后面大括号中的语句

     

     */

    

    

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

    char d1 = 0;

    printf("请输入一个字符:\n");

    scanf("%c",&d1);

    if (d1 >= '0' && d1 <= '9') {

        printf("this is digital");

    } else if(d1 >= 'A' && d1 <= 'Z'){

        printf("this is capital letter");

    }else if(d1 >= 'a' && d1 <= 'z'){

        printf("this is letter");

    }else {

        printf("other");

    }

    

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

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

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

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

    

    

    int a3 = 10;

    int a4 = 12;

    int max = a3 > a4 ? a3 : a4;

    printf("max=%d",max);

    

    //枚举类型

    /*

     定义枚举类型

     enum 枚举类型的名字 {

        枚举值的列表

     

     };

     

     需求:创建一个枚举的值分别为

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

     也可以指定枚举的值

     */

    

//    enum Season{

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

//        summer = 339,

//        autumn,        // 340

//        winter        // 341

//    };

//    

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

    

    

    // switch语句

    /*

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

        case 1(数字或字符):

            执行的语句1;

            break;   //跳出整个switch语句

        case 2(数字或字符):

            执行的语句2;

            break;   //跳出整个switch语句

        case 3(数字或字符):

            执行的语句3;

            break;   //跳出整个switch语句

          ......

        default:

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

            break;

    }

    

    */

    

    //定义一个枚举,提高代码的阅读性

    

    enum Season{

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

        summer,

        autumn,

        winter

    };

    

    

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

    int a5 = 0;

    scanf("%d",&a5);

    switch (a5) {

        case spring:

            printf("spring");

            break;

        case summer:

            printf("summer");

            break;

        case autumn:

            printf("autumn");

            break;

        case winter:

            printf("winter");

            break;

        default:

            printf("输入1-4");

            break;

            //default可以省去

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

    }

    

    

    

    

    

    

    

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值