逻辑运算符

来源:互联网 发布:java 软引用 弱引用 编辑:程序博客网 时间:2024/06/04 01:29

逻辑运算符

逻辑运算符用来做表达式的逻辑判断,主要有逻辑与(&&),逻辑或(||)和逻辑非(!)三种逻辑运算,它们的特性如下所示:

逻辑与:&&运算符左右两边的表达式(或者多个表达式)运算结果都为真,逻辑与的运算结果就为真,否则结果就为假

逻辑或:||运算符左右两边的表达式(或者多个表达式)中有一个表达式的运算结果为真,逻辑或的运算结果就为真,否则就为假

逻辑非:用于表达式取反,真变成假,假变成真

优先级(从高到低):!->算术运算符->关系运算符->&&->||->赋值运算符

结合性:自左向右

逻辑与的应用案例如下所示:

三个科目的分数必须大于等于145分,才能被清华大学录取,只要有一门不满足,就不能录取

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*定义三个常量 三门成绩的录取分数*/#define 语文 145#define  数学 145#define 英语 145/*逻辑与运算符@author tony ittimeline@163.com@date 2017/11/28 12:32@website www.ittimeline.net*/void logic_and() {    int chinese = 145;    int math = 145;    int english = 145;    chinese >= 语文&&math >= 数学&&english >= 英语 ? printf("你被清华录取了\n"):system("echo 记录努力吧");    chinese = 140; //修改分数    printf("修改语文成绩为140分之后判断是否考取清华大学的结果为");    //只要有一个条件不满足,结果为假    chinese >= 语文&&math >= 数学&&english >= 英语 ? printf("你被清华录取了\n") : system("echo 记录努力吧");    system("pause");}

逻辑或的应用案例如下所示:

即使三科的成绩没有都大于等于145分,但是总分大于等于435,满足逻辑或,因此可以被录取

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*定义三个常量 三门成绩的录取分数*/#define 语文 145#define  数学 145#define 英语 145/*逻辑或运算符@author tony ittimeline@163.com@date 2017/11/28 12:32@website www.ittimeline.net*/void logic_or() {    int chinese = 145;    int math = 142;    int english = 148;    int total = chinese + math + english;    (chinese >= 语文&&math >= 数学&&english >= 英语) ||(total>=435)? printf("你被清华录取了\n") : system("echo 记录努力吧");//    system("pause");}

逻辑非的应用案例如下所示:

10>20的关系运算结果为0,但是加上逻辑非运算后结果变成了1

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*逻辑非运算符@author tony ittimeline@163.com@date 2017/11/28 12:32@website www.ittimeline.net*/void logic_not() {    int num = 10;    int val = 20;    printf("10 >20 逻辑非的运算结果是%d\n",!(num>val));    system("pause");}

逻辑与和逻辑或在运算时还存在着短路特性:当明确整体的表达式的运算结果以后,余下的表达式将不会再执行,如下应用程序所示:

#include <stdio.h>#include <stdlib.h>/*    逻辑与和逻辑或的短路效应    @author tony ittimeline@163.com    @date 2017/11/29 22:24    @website www.ittimeline.net*/void logic_short_circuit() {    int num = 10;    0 && ++num;    printf("逻辑与的短路特性 num = %d\n",num); //输出结果为num=10 ,因为&&左边的表达式结果为0,因此整个表达式的结果就是0,因此后面的++num不会再执行    1 || ++num;    printf("逻辑或的短路特性 num = %d\n", num);//输出结果依然为num=10,因为||左边的表达式结果为非0,,因此整个表达式的结果就是非0,因此后面的++num不会再执行    system("pause");}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 默歌谱 歌曲默 千歌未央 关于母亲的歌 献给母亲的歌 母亲的歌 赞美母亲的歌 歌颂母亲的歌 唱给母亲的歌 送给母亲的歌 唱母亲的歌有哪些 关于父亲和母亲的歌 母亲教我的歌简谱 献给去世母亲的一首歌 送给天堂母亲的歌 父亲的草原母亲的歌 母亲节送给妈妈的歌 想念天堂的母亲歌 关于母亲的歌曲 母亲的歌曲大全 关于母亲的歌曲大全 有关母亲的歌曲 歌曲母亲的歌词 歌曲,母亲 怀念母亲的歌曲 阎维文歌曲母亲 我离开你太久了母亲什么歌 我离开你太久了母亲是什么歌 歌浴森2012神曲 歌浴森为什么消失了 歌浴森因为爱情 歌海娜750ml多少钱一瓶 歌海娜葡萄酒价格 歌海娜 晓渔天歌作品 渔父歌张志和 末世女战士在七零 晓渔天歌 雪鸾歌作品 雪鸾歌 关于雪的歌 琼雪卓玛的歌