您的位置:首页 > 编程语言 > Java开发

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

2017-12-18 11:06 267 查看
(五)逻辑运算符

用于两个布尔型的变量或常量,有以下六个:

1.&&:短路与,都true才true;

2.&:不短路与,同上;

3.||:短路或,有一个true就返回true;

4.| :不短路或,;

5.!:非,只需要一个操作数;

6.^: 异或,两个操作数不同,返回true

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

System.out.println(!false);//返回true
int a = '6';//对应的值为54
//下面,第一个2>1返回的是true,所以会执行后面的,最后结果是55
System.out.println(2>1&&a++>6);
System.out.println(a);
//当第一个3>4返回的是false,因此不再执行后面的,a的最后的值是54
System.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)不要过多依赖运算符优先级来控制执行的顺序,这样可读行太差,尽量使用()来控制表达式的执行顺序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java