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++语言运算符的功能、优先级和结合性

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

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

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

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

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

  5. 【Python】2.19学习笔记 成员运算符,身份运算符,运算符优先级

    成员运算符 暂时不会用,等学链表时再补充 \(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. 算数运算符& 关系运算符

    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之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)

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

随机推荐

  1. cxgrid footer summary value by a column

    var AIndex: integer; AValue: variant; begin with cxGrid1DBTableView1.DataController.Summary do begin ...

  2. Oracle数据库间的数据复制 - SQLPlus中的COPY命令

    Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持 ...

  3. Clone中存在的浅克隆问题

    A.java package second; public class A { String country;//国家 String province;//地区 String city;//城市 pu ...

  4. 创建dblink 同义词

     database link dblink的主要作用是两个数据库间的数据访问 create database link my_test connect to testdbname identified ...

  5. php生成xml的四种方法(转)

    <?xml version="1.0" encoding="utf-8"?> <article> <item> <ti ...

  6. EntityFramework.Extended

    记录 Entity Framework扩展,可以实现批量更新.删除,但需要EntityFramework6.0支持,需要支持低版本的EF,可下载该扩展的低版本. https://www.nuget.o ...

  7. android锁屏和finish()后activity生命周期的变化

    之前写了一个一键锁屏软件,有个朋友用了后发现了问题,所以昨天研究了一个activity在锁屏后的生命周期变化.如下: 锁屏分为两个步骤,先是锁定屏幕,再是黑屏 onCreate(在该方法里锁屏)--- ...

  8. 【BZOJ 2878】 [Noi2012]迷失游乐园

    Description 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩.进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m条道路的无向连通图,且该图中至多有一个环( ...

  9. DNF技能贴图的研究

    一直在猜想DNF的技能贴图怎么贴的,靠在游戏里慢慢移动确定技能的偏移太费时间了.前段发现了“可视坐标生成”这软件,针对DNF改衣服,装备款式的小工具,就自己写了个类似的. 从图上看,技能的域中心点和人 ...

  10. C# 读XML文件

    /// <summary> /// xml文件路径+名称 /// </summary> public void ReadXml(string xmlname) { try { ...