有时候,我们需要在多个条件同时成立的时候才能执行某段代码,比如:用户只有同时输入了QQ和密码,才能执行登录代码,如果只输入了QQ或者只输入了密码,就不能执行登录代码。这种情况下,我们就要借助于C语言提供的逻辑运算符。

逻辑运算的结果只有2个:“真”为1,“假”为0

&& 逻辑与

1> 使用格式

“条件A && 条件B”

2> 运算结果

只有当条件A和条件B都成立时,结果才为1,也就是“真”;其余情况的结果都为0,也就是“假”。因此,条件A或条件B只要有一个不成立,结果都为0,也就是“假”

3> 运算过程

总是先判断条件A是否成立

l 如果条件A成立,接着再判断条件B是否成立:如果条件B成立,“条件A && 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”

l 如果条件A不成立,就不会再去判断条件B是否成立:因为条件A已经不成立了,不管条件B如何,“条件A && 条件B”的结果肯定是0,也就是“假”

4> 举例

逻辑与的结合方向是“自左至右”。比如表达式 (a>3) && (a<5)

若a的值是4:先判断a>3,成立;再判断a<5,也成立。因此结果为1

若a的值是2:先判断a>3,不成立,停止判断。因此结果为0

因此,如果a的值在(3, 5)这个范围内,结果就为1;否则,结果就为0

5> 注意

若想判断a的值是否在(3, 5)范围内,千万不能写成33) && (a<5)

lC语言规定:任何非0值都为“真”,只有0才为“假”。因此逻辑与也适用于数值。比如 5 && 4的结果是1,为“真”;-6 && 0的结果是0,为“假”

2.|| 逻辑或

1> 使用格式

“条件A || 条件B”

2> 运算结果

当条件A或条件B只要有一个成立时(也包括条件A和条件B都成立),结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。

3> 运算过程

总是先判断条件A是否成立

如果条件A成立,就不会再去判断条件B是否成立:因为条件A已经成立了,不管条件B如何,“条件A || 条件B”的结果肯定是1,也就是“真”

如果条件A不成立,接着再判断条件B是否成立:如果条件B成立,“条件A || 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”

4> 举例

逻辑或的结合方向是“自左至右”。比如表达式 (a<3) || (a>5)

若a的值是4:先判断a<3,不成立;再判断a>5,也不成立。因此结果为0

若a的值是2:先判断a<3,成立,停止判断。因此结果为1

因此,如果a的值在(-∞, 3)或者(5, +∞)范围内,结果就为1;否则,结果就为0

5> 注意

C语言规定:任何非0值都为“真”,只有0才为“假”。因此逻辑或也适用于数值。比如 5 || 4的结果是1,为“真”;-6 || 0的结果是1,为“真”;0 || 0的结果是0,为“假”

3.! 逻辑非

1> 使用格式

“! 条件A”

2> 运算结果

其实就是对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”。也就是说:真的变假,假的变真。

3> 举例

逻辑非的结合方向是“自右至左”。比如表达式 ! (a>5)

若a的值是6:先判断a>5,成立,再取反之后的结果为0

若a的值是2:先判断a>3,不成立,再取反之后的结果为1

因此,如果a的值大于5,结果就为0;否则,结果就为1

4> 注意

可以多次连续使用逻辑非运算符:!(4>2)结果为0,是“假”,!!(4>2)结果为1,是“真”,!!!(4>2)结果为0,是“假”

C语言规定:任何非0值都为“真”,只有0才为“假”。因此,对非0值进行逻辑非!运算的结果都是0,对0值进行逻辑非!运算的结果为1。!5、!6.7、!-9的结果都为0,!0的结果为1

4.优先级

逻辑运算符的优先级顺序为:小括号() > 负号 - > ! > 算术运算符 > 关系运算符 > && > ||

表达式!(3>5) || (2<4) && (6<1) :先计算 !(3>5)、(2<4)、(6<1),结果为1,式子变为1 || 1 && 0,再计算1 && 0,式子变为1 || 0,最后的结果为1

表达式3+2<5||6>3 等价于 ((3+2) < 5) || (6>3),结果为1

表达式4>3 && !-5>2 等价于 (4>3) &&  ((!(-5)) > 2) ,结果为0

#include

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 ;

}

&lbrack;java学习笔记&rsqb;java语言核心----面向对象之this关键字

一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

&lbrack;java学习笔记&rsqb;java语言核心----面向对象之构造函数

1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

Java学习笔记:语言基础

Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

IOS学习笔记07---C语言函数-printf函数

IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

IOS学习笔记06---C语言函数

IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

ios开发学习笔记001-C语言基础知识

先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

《C语言深度剖析》学习笔记----C语言中的符号

本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...

iOS学习笔记---oc语言第一天

第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++  java   ...

iOS学习笔记---c语言第二天

一.bool布尔类型    c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...

MySQL学习笔记&lowbar;6&lowbar;SQL语言的设计与编写(下)

SQL语言的设计与编写(下) --SELECT查询精讲 概要: SELECT[ALL | DISTINCT] #distinct 明显的,清楚的,有区别的 {*|table.*|[table.]fie ...

随机推荐

Linux文件计数

1.当前目录下的文件数 ls -l |grep "^-"|wc -l 2.当前目录的目录树 ls -l |grep "^d"|wc -l 3.当前目录文件数包含 ...

MSIL解析一(转)

转自:http://www.cnblogs.com/Yahong111/archive/2007/08/15/857140.html 在网上发现了一个非常好的MSIL教程,可惜是英文版的,于是就翻译了 ...

linux 压缩与解压缩

tar 命令详解  -c: 建立压缩档案   -x:解压   -t:查看内容   -r:向压缩归档文件末尾追加文件   -u:更新原压缩包中的文件   这五个是独立的命令,压缩解压都要用到其中一个,可 ...

JavaScript常见的继承方式

原型链机制: 在ECMAscript中描述了原型链的概念,并将原型链作为实现继承的主要方法,其基本思想就是利用原型让一个引用类型继承另一个引用类型的属性和方法. 构造函数和原型还有实例之间的关系: 每 ...

&lbrack;转&rsqb;C&num;利用反射实现两个类的对象之间相同属性的值的复制

本文转自:https://blog.csdn.net/u013093547/article/details/53584591 在使用c#进行程序编写时,会遇到一个问题,两个属性字段差不多相同的类要进行 ...

交替最小二乘ALS

https://www.cnblogs.com/hxsyl/p/5032691.html http://www.cnblogs.com/skyEva/p/5570098.html 1. 基础回顾 矩阵 ...

Nginx错误提示:504 Gateway Time-out解决方法

朋友说504 Gateway Time-out的错误提示与nginx本身是没有任何关系的我们可以通过fastcgi配置参数的调整进行解 决. 修改 php-fpm 配置文件: 1.把 max_chil ...

springmvc返回json数据的工具类

在ssm框架下,MVC向前端返回数据的json工具类代码如下: public class JsonResult { public static final int SUCCESS=0 ...

HIBERNATE知识复习记录3-关联关系

先上一张图,关于几种关系映射: 抄一段解释: 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用.关联关系分为上述七 ...

c语言逻辑运算符用法大全,【学习笔记】【C语言】逻辑运算符相关推荐

  1. 《C语言深度剖析》学习笔记----C语言中的符号

    本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...

  2. nltk和python的关系_NLTK学习笔记(一):语言处理和Python

    目录 nltk资料下载 import nltk nltk.download() 其中,download() 参数默认是all,可以在脚本里面加上nltk.download(需要的资料库) 来进行下载 ...

  3. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  4. gnu make 手册 学习笔记 C语言 / C++ 构建工具 part.5 函数 控制语句

    GNU Make manual 学习笔记 C语言 / c++ 构建工具 5.函数,控制语句 5-1.函数 5-1-1.替换,函数$(subst from,to,text), 5-1-2.替换,函数$( ...

  5. R语言与函数估计学习笔记(函数模型的参数估计)

    R语言与函数估计学习笔记 毫无疑问,函数估计是一个比参数估计要复杂得多的问题,当然也是一个有趣的多的问题.这个问题在模型未知的实验设计的建模中十分的常见,也是我正在学习的内容的一部分. 关于函数估计我 ...

  6. C语言学习笔记---001C语言的介绍,编译过程原理,工具等

    C语言学习笔记---001C语言的介绍,编译过程原理,工具等 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技术交流平台:cre.i ...

  7. IOS学习笔记07---C语言函数-scanf函数

    2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072            ...

  8. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  9. IOS学习笔记05---C语言程序的开发运行过程

    IOS学习笔记05---C语言程序的开发运行过程 0 5.C语言3-C语言程序的开发运行过程 ----------------------------------------------------- ...

  10. IOS学习笔记03---C语言概述

    IOS学习笔记03---C语言概述 0 3.C语言1-C语言概述         qq交流群:创梦技术交流群:251572072                        创梦网络赚钱群:2483 ...

最新文章

  1. 协方差、协方差矩阵的解释意义
  2. 用 TWebBrowser 查找网页上的按钮,编辑框,
  3. ibd finance
  4. html 画动画效果,html5 canvas绘制曲线动画特效
  5. toad查看oracle的plsql包,Oracle logminer 分析redo log(TOAD与PLSQL)
  6. Vue中的computed属性
  7. MySQL索引的索引长度问题
  8. 经典面试题(14):关于delete 操作符,以下代码将输出什么?
  9. tomcat的url-pattern的源码分析
  10. Fiddler详解-Fiddler Classic
  11. 职称计算机考试题库word2003,全国职称计算机考试题库(Word2003模块)
  12. mysql分库分表中间件6_数据性能改善——分库分表中间件
  13. Unity Hub 下载2017-2019版本链接
  14. java Math类的常用方法介绍
  15. 孫丕恕:計算力已成為數字經濟先行指數 決定未來發展潛力
  16. Windows NT引导过程源代码分析
  17. [基于harbor部署私有仓库] 4 推送镜像到harbor
  18. 信息系统安全实验——Week 8
  19. VMware官网获取VMware Workstation Pro、安装及注册
  20. 特征向量中的NLU意图识别流程及应用

热门文章

  1. SNMP原理和MIB库
  2. 喜欢蓝蓝的天空白白的云。这首《 Blue Skies》就是啦。
  3. 真正的英雄(罗纳德·里根在“挑战者号”航天飞机失事后的演讲词)
  4. sap查看后台作业进度_SAP资产折旧运行 AFAB
  5. 2019杭州上城区公办小学学区划分
  6. 小程序分包大小超过限制
  7. 微信小程序蓝牙控制开门
  8. Biobank genetic data探析(二)
  9. dev、test和prod是什么意思?
  10. npm 安装参数中的 --save-dev 是什么意思