&&运算符和||运算符的优先级问题

时间:2022-09-12 20:47:41
public class SyntaxTest {

    @Test
public void test() {
System.out.println(true || true && false);//&&的优化级比||高。所以为true
System.out.println((true || true) && false);//false
System.out.println(true || (true && false));//true
} }
    @Test
public void testPriority() {
/**
* 用&&连接的两个变量会被当作一个值来看,按从左到右的顺序,
* 如果&&左边的值为false,则结果已出,&&连接的右边的表达式就不会被执行
* 这就是短路特性
* ||运算符的特性:
* 按顺序进行运算,只要找到一个为真的,就不继续运算,整个结果就返回真
* &&运算符的特性:
* 只要找到一个false,就结束
*/
int flag1 = 1, flag2 = 2;
LOGGER.info("1、result:{}", checkFalse() && (checkTrue(flag1) || checkTrue(flag2)));//后面两个checkTrue()方法不会被执行
LOGGER.info("2、result:{}", checkFalse() && checkTrue(flag1) || checkTrue(flag2));//checkTrue(flag1)不会被执行
} private static boolean checkFalse() {
boolean tmp = false;
LOGGER.info("I am checkFalse(),I am {}", tmp);
return tmp;
} private static boolean checkTrue(int flag) {
boolean tmp = true;
LOGGER.info("flag:{},I am checkTrue(),I am {}", flag, tmp);
return tmp;
}

输出:

16:25:10.357 [main] INFO com.syntax.SyntaxTest - I am checkFalse(),I am false
16:25:10.360 [main] INFO com.syntax.SyntaxTest - 1、result:false
16:25:10.360 [main] INFO com.syntax.SyntaxTest - I am checkFalse(),I am false
16:25:10.360 [main] INFO com.syntax.SyntaxTest - flag:2,I am checkTrue(),I am true
16:25:10.360 [main] INFO com.syntax.SyntaxTest - 2、result:true

依据:根据输出结果可以看出

第二个没有加小括号,在实际执行时前两个checkFalse() && checkTrue()先运算,是一个整体

运算后的结果再与后面的进行||运算

http://ham.iteye.com/blog/198039

单目乘除为关系,逻辑三目后赋值。

单目:单目运算符+ –(负数) ++ -- 等
乘除:算数单目运算符* / % + -
为:位移单目运算符<< >>
关系:关系单目运算符> < >= <= == !=
逻辑:逻辑单目运算符&& || & | ^
三目:三目单目运算符A > B ? X : Y ,其中三目中中的后":"无意义,仅仅为了凑字数
赋值:赋值=

http://blog.csdn.net/shine0181/article/details/6670023

python中的优先级

运算符示意
not –表示取反运算
and –表示取与运算
or –表示取或运算

运算符优先级
not > and > or

举例如下:

bool_one = False or not True and True
print bool_one
bool_two = False and not True or True
print bool_two
bool_three = True and not (False or False)
print bool_three
bool_four = not not True or False and not True
print bool_four
bool_five = False or not (True and True)
print bool_five

程序输出:

False
True
True
True
False

&&运算符和||运算符的优先级问题的更多相关文章

  1. JavaScript中涉及得运算符以及运算符的优先级

    在js中主要有三种运算符:算术运算符,逻辑与比较运算符,位运算符.在着三种运算符中,最常见的应该是算术与比较运算符,位运算符比较少见一些 *说到了运算符,就不得不说运算符的优先级.下面我来列一下这些运 ...

  2. C&plus;&plus;语言运算符的功能、优先级和结合性

    优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -& ...

  3. (4)javascript的运算符以及运算符的优先级

                                    运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为 ...

  4. 003-Python3-基础语法-运行方式、代码基础要求、运算符&lbrack;算数运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符&rsqb;、运算符优先级

    一.基础语法 参看地址:https://www.runoob.com/python3/python3-tutorial.html 1.1.运行方式 1.文件方式 编写一个hello.py文件, pri ...

  5. 【Python】2&period;19学习笔记 成员运算符&comma;身份运算符&comma;运算符优先级

    成员运算符 暂时不会用,等学链表时再补充 \(in\) 与 \(not in\) \(in\):如果在指定序列中找到指定值,则返回\(true\) \(not in\):如果在指定序列中找到指定值,则 ...

  6. 031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级

    031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级 本文知识点:Java中运算符的优先级 运算符的优先级问题 前面学习了很多的运算符,如果这些 ...

  7. js运算符 及 运算符优先级

    「运算符」是用于实现赋值.比较和执行算数运算等功能的符号.常用运算符分类如下符号 算数运算符 递增和递减运算符 比较运算符 逻辑运算符 赋值运算符 算数运算符 运算符 描述 案例 + 加 10+20= ...

  8. 算数运算符&amp&semi; 关系运算符

    java中的算数运算符 + - * / % ++ -- + +: 加法运算符 - : 减法运算符 *: 乘法运算符 / : 除法运算符 注意: 除数不能为0,除数为0会报出异常 整数运算默认得到整数, ...

  9. Python 运算符 各类运算符总结

    运算符详解2.1.算术运算符2.2.比较(关系)运算符2.3.赋值运算符2.4.逻辑运算符2.5.位运算符2.6.成员运算符2.7.身份运算符三.重要运算符说明3.1.join和符号”+“区别3.2. ...

  10. js之运算符其它运算符(三元运算符&comma;逗号运算符&comma;void运算符&comma;typeof&comma;delete运算符)

    Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...

随机推荐

  1. google觉得好用的插件(不断更新)

    1.Octotree 访问github可以显示工程结构. 2.vysor 免费版可以让手机在电脑演示,其中付费版还可以电脑操作手机.

  2. WIN7凭据管理器保存的凭据过段时间会自动删除的解决办法

    控制面板\用户帐户和家庭安全\凭据管理器 进入该页面可看到所有凭据

  3. mac osx 启动wireshark闪退

    wireshark启动会提示安装x11 去x11地址安装后 启动还是闪退 原来是姿势不对 这样才行~~ 这一步 这个路径一定要对!路径一定要对!路径一定要对! 然后报错不用管它,如果没反应了,就继续等 ...

  4. DB2中ixf文件的导入导出

    1. 导出数据 语法:EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名   2. 导入数据 语法:db2 IMPORT FROM <路 ...

  5. 字符串(多串后缀自动机):HDU 4436 str2int

    str2int Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total S ...

  6. Android开发 ---基本UI组件6 :只定义一个listView组件,然后通过BaseAdapter适配器根据数据的多少自行添加多个ListView显示数据

    效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?&gt ...

  7. Android深入四大组件(七)Service的绑定过程

    前言 我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读Android深入四大 ...

  8. 《DSP using MATLAB》Problem 6&period;14

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  9. 【cs229-Lecture14】主成分分析法

    本节课内容: 因子分析 ---因子分析中的EM步骤的推导过程 主成份分析:有效地降低维度的方法 因子分析 混合高斯模型的问题 接下来讨论因子分析模型,在介绍因子分析模型之前,先看高斯分布的另一种写法, ...

  10. 基础算法学习2-dp

    一.算法题: 最大子阵 给定一个n×m 的矩阵 A,求A 中的一个非空子矩阵,使这个子矩阵中的元素和最大.其中,A 的子矩阵指在 A 中行和列均连续的一部分.输入格式输入的第一行包含两个整数 n,m( ...