码迷,mamicode.com
首页 > 其他好文 > 详细

C零基础课程-14-逻辑运算符

时间:2019-10-10 11:32:00      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:argv   scanf   基础   clu   运算   code   pre   title   总结   

C语言中的逻辑运算符

C语言中的逻辑运算符有“&&”、“||”、及“!”,他们分别被称为逻辑与、逻辑或、逻辑非。
前两者是二元运算符,逻辑非是一元运算符。

逻辑与运算符“&&”

逻辑与运算符的基本语法是:

表达式1 && 表达式2

其求值的结果规则是:

  • 当两个表达式均为非0时,求值结果为1
  • 其他情况(只要有至少一个表达式为0),求值结果为0

实例:判断一个数字既可以被5整除又可以被7整除

#include <stdio.h>

int main(int argc, char* argv[])
{
    int nValue = 0;
    scanf("%d", &nValue);

    if (nValue % 5 == 0 && nValue % 7 == 0)
    {
        printf("这个数字既可以被5整除,也可以被7整除\r\n");
    }
 return 0;
}

逻辑或运算符“||”

逻辑或运算符的基本语法是:

表达式1 || 表达式2

其求值的结果规则是:

  • 当两个表达式均为0时,求值结果为0
  • 其他情况(只要有至少一个表达式为非0),求值结果为1

实例:判断一个年份,是否为闰年,判断闰年的标准是:

  • 能被100整除,同时能被400整除
  • 或者不能被100整除,但是能被4整除
#include <stdio.h>

int main(int argc, char* argv[])
{
    int nYear = 0;
    scanf("%d", &nYear);

    //能被100整除,同时能被400整除
    // nYear % 100 == 0 && nYear % 400 == 0

    //不能被100整除,但是能被4整除
    // nYear % 100 != 0 && nYear % 4 == 0

    if (
        (nYear % 100 == 0 && nYear % 400 == 0)
        || (nYear % 100 != 0 && nYear % 4 == 0)
        )
    {
        printf("这个是闰年\r\n");
    }
    else
    {
        printf("不是闰年\r\n");
    }
    return 0;
}

逻辑非运算符“!”

逻辑非就是将表达式结果“反置”,其基本语法是:

!原表达式

其求值规则是:

  • 如果原表达式为0,则求值后结果为1
  • 如果原表达式结果为非0,则求值后结果为0
#include <stdio.h>

int main(int argc, char* argv[])
{
    int nValue = 0;
    scanf("%d", &nValue);

    printf("原有表达式的值:%d\r\n", nValue);
    nValue = !nValue;
    printf("逻辑取反后的表达式的值:%d\r\n", nValue);
 return 0;
}

逻辑运算符的短路特点

先看一段代码,推测以下代码的打印结果:

#include <stdio.h>

int main(int argc, char* argv[])
{
    (printf("Hello, world!\r\n") ) || (printf("something else\r\n!"));
 return 0;
}

实际上,这样的打印结果,与逻辑运算符的短路特性有关。
简单总结如下:

  • 如果||运算符左边的表达式为真(非0),则右边的表达式不再执行
  • 如果&&运算符左边的表达式为假(0),则右边的表达式不再执行

C零基础课程-14-逻辑运算符

标签:argv   scanf   基础   clu   运算   code   pre   title   总结   

原文地址:https://www.cnblogs.com/shellmad/p/11646208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!