java逻辑表达式的计算和优化
必要的基本知识储备:
运算符优先级
基本原则:算术>关系>逻辑
例外:
逻辑非! >算术
关系运算符细分为2组:
<,<=,>,>= 优先级高于==,!=
逻辑运算符:
!>&&>||
假设输入是2,如何计算下面是一个逻辑表达式
if (n == 1 || n % 2 == 0 && n != 2) {
传统做法:快速扫描一下,看到有逻辑||和逻辑&&,
先考虑&&,&&的结合性是从左到右,所以先算左边,n%20 ->true; 再算n!=2->false; 所以||右边是false;
n1->false;所以整个表达式是false
上述做法没有错,但计算太繁琐
综合考虑运算优先级,结合输入,可以更快速的确定逻辑运算表达式的结果。
例如,对于上面的逻辑表达式,可以按||和&&逻辑运算符进行分解,原因是它们的优先级比较低,它们将最后进行运算。所以可以把整个表达式可以简化为a||b&&c
a比较简单,先算a,如果a为true则b&&c不用算了
本例n=2,所以n==1为false,即false||b&&c
需要计算b&&c, b&&c意味着b和c同时为true表达式才为true
策略还是先算简单的,如果简单表达式为false,则不用算那个复杂的;显然n!=2好算,c–>false,所以b&&c ->false
a||b&&c -> false
所以,通过对逻辑表达式进行分组,结合输入,综合考虑运算符优先级,可以快速计算。
java逻辑表达式的计算和优化相关推荐
- Java基础-时间复杂度计算方式
Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...
- 高吞吐低延迟Java应用的垃圾回收优化
高吞吐低延迟Java应用的垃圾回收优化 高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经 ...
- java精确除法计算,四舍五入 Java问题通用解决代码
java精确除法计算,四舍五入 Java问题通用解决代码 参考文章: (1)java精确除法计算,四舍五入 Java问题通用解决代码 (2)https://www.cnblogs.com/svenne ...
- java调优 视频_Java优化高性能高并发+高并发程序设计视频教程
转自:https://www.cnblogs.com/ajianku/p/10236573.html 第1章 课程介绍及项目框架搭建 1-1 Java高并发商城秒杀优化导学 1-2 项目环境搭建(Ec ...
- Java判断工作日计算,计算随意2个日期内的工作日
当前位置:我的异常网» Java Web开发 » 计算随意2个日期内的工作日 计算随意2个日期内的工作日 www.myexceptions.net 网友分享于:2013-08-17 浏览:51次 ...
- 【Java】Float计算不准确
大家可能都遇到过,float在计算某些值时,会有不准确的情况. 比如如下情况: > 计算不准确 package com.nicchagil.study.java.demo.No10float计算 ...
- Java练习 SDUT-1586_计算组合数
计算组合数 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 计算组合数.C(n,m),表示从n个数中选择m个的组合数. ...
- java 多线程统计质数,Java 七 多线程计算某个范围内的质数
Java 7 多线程计算某个范围内的质数 不多说了,看代码 通用类 package java7.concurrency.math; /** * This class generates prime n ...
- java 逻辑表达式 布尔_使用基本逻辑门实现布尔表达式
java 逻辑表达式 布尔 将布尔表达式转换为逻辑电路 (Converting Boolean Expression to Logic Circuit) The simplest way to con ...
- java指定日期计算一年内第几天和给出一年内第几天算出指定日期
java指定日期计算一年内第几天和给出一年内第几天算出指定日期 1.计算一年内第几天,部分参考的是https://blog.csdn.net/xinpengfei521/article/details ...
最新文章
- gensim的word2vec如何得出词向量(python)
- autoware定位:gnss定位与lidar定位(四)
- 功能基因多样性研究概述
- C# 利用SharpPcap实现网络包捕获嗅探
- 【Vulnhub靶机系列】DC1
- ubuntu16.04下面xfce4没有声音
- MessageDAL
- 控制输入框的:选择,复制,粘贴功能。
- git下载、安装、配置与简单应用(git上路之始)
- Chrome不保留历史记录,常规模式下不保留历史记录
- MYSQLg高级------聚簇索引和非聚簇索引
- 在线apt-get安装mysql_apt-get安装mysql
- Nacos服务注册流程(一)
- 比DOORS好用的需求管理系统有哪些?对比10大需求管理工具
- linux启动dns失败,Linux DNS 设置失败
- [系统资源攻略]IO第二篇
- INRIA数据集转换成VOC格式
- centos7中找不到ifconfig命令的解决⽅法
- 程序员最头疼的七件事
- HDLbits——procedures
热门文章
- DDIM代码详细解读(1):数据集加载、类别条件信息读取、关键超参数解析
- 全国计算机技术与软件专业技术资格(水平)考试
- springboot 整合mybatis,pagehelper。测试类。
- 我的世界java雪村种子_我的世界:自带雪屋前哨站与要塞的富有雪村种子,超稀有砂砾山...
- 计算机软件考试成绩查询时间,2020年计算机软考什么时候出成绩,怎么查成绩?|...
- 知名互联网公司系统架构图
- 【华为 OJ 】等差数列
- U盘中病毒后文件变为屏幕保护程序恢复方法
- Users用户类默认值及各属性可能的值
- Halcon实战之MLP颜色匹配(一)