必要的基本知识储备:
运算符优先级
基本原则:算术>关系>逻辑
例外:
逻辑非! >算术
关系运算符细分为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逻辑表达式的计算和优化相关推荐

  1. Java基础-时间复杂度计算方式

    Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...

  2. 高吞吐低延迟Java应用的垃圾回收优化

    高吞吐低延迟Java应用的垃圾回收优化 高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经 ...

  3. java精确除法计算,四舍五入 Java问题通用解决代码

    java精确除法计算,四舍五入 Java问题通用解决代码 参考文章: (1)java精确除法计算,四舍五入 Java问题通用解决代码 (2)https://www.cnblogs.com/svenne ...

  4. java调优 视频_Java优化高性能高并发+高并发程序设计视频教程

    转自:https://www.cnblogs.com/ajianku/p/10236573.html 第1章 课程介绍及项目框架搭建 1-1 Java高并发商城秒杀优化导学 1-2 项目环境搭建(Ec ...

  5. Java判断工作日计算,计算随意2个日期内的工作日

    当前位置:我的异常网» Java Web开发 » 计算随意2个日期内的工作日 计算随意2个日期内的工作日 www.myexceptions.net  网友分享于:2013-08-17  浏览:51次 ...

  6. 【Java】Float计算不准确

    大家可能都遇到过,float在计算某些值时,会有不准确的情况. 比如如下情况: > 计算不准确 package com.nicchagil.study.java.demo.No10float计算 ...

  7. Java练习 SDUT-1586_计算组合数

    计算组合数 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 计算组合数.C(n,m),表示从n个数中选择m个的组合数. ...

  8. java 多线程统计质数,Java 七 多线程计算某个范围内的质数

    Java 7 多线程计算某个范围内的质数 不多说了,看代码 通用类 package java7.concurrency.math; /** * This class generates prime n ...

  9. java 逻辑表达式 布尔_使用基本逻辑门实现布尔表达式

    java 逻辑表达式 布尔 将布尔表达式转换为逻辑电路 (Converting Boolean Expression to Logic Circuit) The simplest way to con ...

  10. java指定日期计算一年内第几天和给出一年内第几天算出指定日期

    java指定日期计算一年内第几天和给出一年内第几天算出指定日期 1.计算一年内第几天,部分参考的是https://blog.csdn.net/xinpengfei521/article/details ...

最新文章

  1. gensim的word2vec如何得出词向量(python)
  2. autoware定位:gnss定位与lidar定位(四)
  3. 功能基因多样性研究概述
  4. C# 利用SharpPcap实现网络包捕获嗅探
  5. 【Vulnhub靶机系列】DC1
  6. ubuntu16.04下面xfce4没有声音
  7. MessageDAL
  8. 控制输入框的:选择,复制,粘贴功能。
  9. git下载、安装、配置与简单应用(git上路之始)
  10. Chrome不保留历史记录,常规模式下不保留历史记录
  11. MYSQLg高级------聚簇索引和非聚簇索引
  12. 在线apt-get安装mysql_apt-get安装mysql
  13. Nacos服务注册流程(一)
  14. 比DOORS好用的需求管理系统有哪些?对比10大需求管理工具
  15. linux启动dns失败,Linux DNS 设置失败
  16. [系统资源攻略]IO第二篇
  17. INRIA数据集转换成VOC格式
  18. centos7中找不到ifconfig命令的解决⽅法
  19. 程序员最头疼的七件事
  20. HDLbits——procedures

热门文章

  1. DDIM代码详细解读(1):数据集加载、类别条件信息读取、关键超参数解析
  2. 全国计算机技术与软件专业技术资格(水平)考试
  3. springboot 整合mybatis,pagehelper。测试类。
  4. 我的世界java雪村种子_我的世界:自带雪屋前哨站与要塞的富有雪村种子,超稀有砂砾山...
  5. 计算机软件考试成绩查询时间,2020年计算机软考什么时候出成绩,怎么查成绩?|...
  6. 知名互联网公司系统架构图
  7. 【华为 OJ 】等差数列
  8. U盘中病毒后文件变为屏幕保护程序恢复方法
  9. Users用户类默认值及各属性可能的值
  10. Halcon实战之MLP颜色匹配(一)