小白Java笔记——运算符(二)及优先级

来源:互联网 发布:淘宝刷单流程360 编辑:程序博客网 时间:2024/06/07 07:39

(五)逻辑运算符
用于两个布尔型的变量或常量,有以下六个:
1.&&:短路与,都true才true;
2.&:不短路与,同上;
3.||:短路或,有一个true就返回true;
4.| :不短路或,;
5.!:非,只需要一个操作数;
6.^: 异或,两个操作数不同,返回true

短路:指的是前一个操作数如果返回的是false,则不再执行后面的

System.out.println(!false);//返回trueint a = '6';//对应的值为54//下面,第一个2>1返回的是true,所以会执行后面的,最后结果是55System.out.println(2>1&&a++>6);System.out.println(a);//当第一个3>4返回的是false,因此不再执行后面的,a的最后的值是54System.out.println(3>4&&a++>6);System.out.println(a);//同理短路||或,当第一个返回的是true时,就不再执行第二个,这里不再赘述

(六)三目运算符
只有一个: ? :

(expression)?if-true-statement:if-false-statement;

例子:

String str = 5>3?"五是大于三的":"五不会大于三的";System.out.println(str);//也可以嵌套int a = 11;int b = 12;System.out.println(a>b?"a>b":(a<b?"a<b":"a=b"));

三目算法大部分是作为if else 的精简写法,也就相当于:

String str2 = null;if(5>3){  str2 = "五是大于三的";}else {str2 = "五不会大于三的";}
  • 区别:if后的代码块可以有多个语句,而三目运算符不支持
    (八)运算符结合性和优先级
    1.结合性:除了单目运算符、赋值运算符和三目运算符是从右到左运算,其他都是从左到右运算的;而乘法和加法是两个可以结合的运算,即左右两边的操作数可以互换位置不影响结果。
    2.优先级
    这里写图片描述
    其中instanceof和(type)运算符与类、继承有关,之后再详细介绍

  • 这里特别说明:源代码的可读性比代码运算效率更重要,因此特别注意:
    (1)不要把一个表达式写的过于复杂,可以分成几步完成;
    (2)不要过多依赖运算符优先级来控制执行的顺序,这样可读行太差,尽量使用()来控制表达式的执行顺序。