黑马程序员——C语言之关系运算

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

很久都没写博客了,之前参加黑马的入学测试,总分数只有90多分,看来是没有希望了,而且才知道黑马一般是不招收大三的在校生的,让我一下不知所措,在纠结了很久了之后,我觉得的自己应该再努力一次,为了自己的未来在努力奋斗一次,于是我便再次提交了入学申请,重新测试了一次。

于是我便重基础部分开始看起了。

今天看的是前面的C语言部分,讲的是C语言中的关系运算。

其实关系运算总结起来就是一句话:条件成立就是返回1,不成立则返回0.

下面是MJ老师的示例代码

#include <stdio.h>

int main()
{
    /*
    int a = 10;
    
    int b = 11;
    
    // 条件成立就返回1,真
    // 条件不成立就返回0,假
    int result = b >= a;
    
    printf("%d\n", result);
     */
    
    //int a = 2>3==1;
    //int a = 3+4 > 8-2;
    
    int a =  5 != 4 + 2 * 7 > 3 == 10;
    
    printf("%d\n", a);
    
    return 0;
}

还有的就是逻辑运算,其实和条件运算是差不多的,也就是条件成立就是为真1,否则为假0.

不过它的条件是逻辑运算。&&这个是and的意思,||这个是or的意思,还有一个是!非就是取反。

下面是示例代码

#include <stdio.h>

int main()
{
    //逻辑与 条件1 && 条件2
    
    // int a  =  10>3 && 7<6;
    
    //int a = 0 && 10;
    
    //printf("a=%d\n", a);
    
    /*
    int a = 10;
    int b = 10;
    
    //int c = (a>5) && (++b>=11);
    
    int c = (a<5) && (++b>=11);
    
    // a = 10
    // b = 10
    // c = 0
    printf("a=%d, b=%d, c=%d\n", a, b, c);*/
    
    
    // 逻辑或 条件1 || 条件2
    
    //int a = 0 || 11;
    /*
    int a = 10;
    int b = 10;
    
    int c = (a<5) || (b++ - 10);
    
    // a = 10
    // b = 11
    // c = 0
    printf("a=%d, b=%d, c=%d\n", a, b, c);*/
    
    // 逻辑非 !条件
    // 如果条件成立,就返回0;如果条件不成立,就返回1
    
    //int a = !(10>8);
    
    //int a = !-10;
    
    //int a = !10>8;
    
    /*
    int a = !!10;
    
    printf("a=%d\n", a);
    */ 
    return 0;
}

其中还讲到了三目运算符

条件 ? 数值1 : 数值2

意思就是如果条件满足,那么我们就返回数值1,如果不满足我们就返回数值2.
下面的示例代码就写的很清楚
#include <stdio.h>

int main()
{
    /* 计算2个整数之间的最大值
    int a = 10;
    
    int b = 99;
    
    int c = a>b ? a : b;
     
     printf("c is %d\n", c);
    */
    
    // 计算3个整数之间的最大值
    int a = 10;
    int b = 999999;
    int c = 1000;
    
     // 求出a、b的最大值
    int abMax = (a > b) ? a : b;
    // 求出最终的最大值
    int d = (abMax > c) ? abMax : c;
    
    //int d = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
    
    printf("d is %d\n", d);
    return 0;
}

接下来讲到的是if条件判断语句和switch语句
if语句还分为了很多种结构

1.if的第1种结构

 if(条件)

 {

    语句1;

    语句2;

    ......

 }

 

 2.if的第2种结构

 if(条件1)

 {

     语句1;

     语句2;

     ......

 } 

 else

 {

    

 }

 

 3.if的第3种结构

 if(条件1)

 {

     语句1;

     语句2;

     ......

 }

 else if(条件2)

 {

 

 }

 else if(条件3)

 {

 

 }

 else if(条件4)

 {

 

 }

 else 

 {

 

 }

 

 4.if的第4种结构

 if (条件)

   语句1;

下面是示例代码
#include <stdio.h>

int main()
{
    /*
    // 人数
    int count = 40;
    
    if ( count >= 50 )
    {
        printf("开班!!!\n");
        printf("准备机器!!!\n");
    }
    else
    {
        printf("不开班!!!\n");
        printf("不准备机器!!!\n");
    }*/
    
    /*
    int a = 6;
    
    if (a++ > 10) // a == 7
    {
        printf("A\n");
    }
    else if (a++ > 5) // a == 8
    {
        printf("B\n");
    }
    else if (a++ > 3) 
    {
        printf("C\n");
    }
    else
    {
        printf("D\n");
    }
    
    printf("a的值是%d\n", a);
     */
    
    int a = -10;
    
    if (a>1)
        printf("A\n");
    
    printf("B\n");
    
    return 0;
}

剩下的switch语句,相当于一个选择入口,条件满足什么就执行什么地方的语句。

switch (数值)

 {

    case 数值1:

        语句1;

        break;

 

    case 数值2:

        语句2;

        break;

 

    default :

        语句3;

        break;

 }

需要注意的是: break: 退出整个 switch 语句 如果 case 后面没有 break ,就会执行后面所有 case 中的语句,直到遇到 break 为止
下面是示例代码
#include <stdio.h>

/*
 if (条件)
 {
 
 }
 
 
 switch (数值)
 {
    case 数值1:
        语句1;
        break;
 
    case 数值2:
        语句2;
        break;
 
    default :
        语句3;
        break;
 }
 */

int main()
{
    //int a = 10;
    // break:退出整个switch语句
    // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
    /*
    int b = 10;
    
    switch (a)
    {
        case 10:
            printf("A\n");
            b++;
        case 5:
            printf("B\n");
            b++;
        case 0:
            printf("C\n");
            b++;
            break;
        default:
            printf("D\n");
            break;
    }
    
    printf("b的值是%d\n", b);*/
    
    char c = '+';
    int a = 10;
    int b = 20;
    // 如果要在case后面定义新的变量,必须用大括号{}包住
    switch (c) {
        case '+':
        {
            int sum = a + b;
            printf("和是%d\n", sum);
            break;
        }
            
        case '-':
        {
            int minus = a - b;
            printf("差是%d\n", minus);
            break;
        }
    }
    
    return 0;
}
if和switch相比较的话
一般if能够做到的switch不能做到,但是switch能够做到的if语句一定能够做到,有些时候if语句和switch语句能够相互替换。

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值