[Java Basic] 04 运算符和表达式
运算符和表达式
运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值运算和逻辑比较方面.Java中提供了丰富的运算符,如赋值运算符、算术运算符、比较运算符等.
- 赋值运算符
赋值运算符以符号"="表示,它是一个二元运算符(对两个操作数做出来),其功能是将右方操作数所含的值赋给左方的操作数.
-
int a = 100;
-
该表达式是将100赋值给变量a,左方的操作数必须是一个变量,而右边的操作数则可以使任何表达式,包括变量、常量、有效的表达式.
由于赋值运算符"="处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的"="运算符,会从最右方的"="开始处理.
- 算术运算符
Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(求余),他们都是二元运算符.
| 运算符 | 说明 |
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| % | 取余数 |
其中"+"和"-"运算符还可以作为数据的正负符号.
在进行除法运算时,0不能做除数.否则系统会抛出ArithmeticException异常.
-
public class Arith { public static void main(String[] args) { float number1 = 45.56f; int number2 = 152; System.out.println("和为: "+(number1+number2)); System.out.println("差为: "+(number1-number2)); System.out.println("积为: "+number1 * number2); System.out.println("商为: "+number1 / number2); } }
-
- 自增和自减运算符
自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后.操作元必须是一个整型或浮点型变量.自增、自减运算符的作用是使变量的值增1或减1.放在操作元前面的的自增、自减运算符,会将变量的值加1(减1),然后在使该变量参与表达式的运算.放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1).
-
++a(--1) //表示在使用变量a之前先使a的值加(减)1 a++(a--) //表示在使用变量a之后再使a的值加(减)1
-
- 比较运算符
比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较.比较运算符的运算结果是boolean型.当运算符对应的关系成立时,运算结果为true,否则为false.所有的比较运算符通常作为判断的依据用在条件语句中.
| 运算符 | 作用 | 操作数据 |
| > | 比较左方是否大于右方 | 整型、浮点型、字符型 |
| < | 比较左方是否小于右方 | 整型、浮点型、字符型 |
| == | 比较左方是否等于右方 | 基本数据类型、引用型 |
| >= | 比较左方是否大于等于右方 | 整型、浮点型、字符型 |
| <= | 比较左方是否小于等于右方 | 整型、浮点型、字符型 |
| != | 比较左方是否不等于右方 | 基本数据类型、引用型 |
-
int max = 10; int num = 9; boolean b1 = max > 15; boolean b2 = num%2 == 1; System.out.println(b1); // 结果为false System.out.println(b2); // 结果为true
-
- 逻辑运算符
返回类型为布尔值的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式.这是通过逻辑运算符来实现的.逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非).逻辑运算符的操作员必须是boolean型数据.在逻辑运算符中除了"!"是一元运算符外,其他都是二元运算符.
| 运算符 | 含义 | 用法 | 结合方向 |
| &&、& | 逻辑与 | op1&&op2 | 左到右 |
| || | 逻辑或 | op1|op2 | 左到右 |
| ! | 逻辑非 | !op | 右到左 |
结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式.
| op1 | op2 | op1&&op2 | op1||op2 | !op1 |
| true | true | true | true | false |
| true | false | false | true | false |
| false | false | false | false | true |
| false | true | false | true | true |
逻辑运算符"&&"与"&"的区别
Java逻辑运算中的&&和||有短路的特性,当第一个关系表达式就可以判断出整个表达式的结果时,就不会再去判断后面的第二个表达式.
1.对于"&&",当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数是什么最后的结果一定是false;
2.对于"||",当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true.
-
字符连接运算
"+"除了可以进行算术运算以外,还可以实现字符串的连接,同时可以实现字符串与其他数据类型的"相连".
当 + 号作用于两个数字类型变量时,是在进行算术运算.
当 + 号两边的变量有一个是字符串类型,即""括起来的时候,则其进行的是字符串的连接,连接后的结果为字符串类型.
-
int a = 100; String msg = "a=" + a; System.out.println(msg); //a=100,字符串拼接 msg = "" + 100 + 200; System.out.println(msg); //结果为: 100200,””+100,为字符串100再拼上200为100200 msg = 100 + 200 + ""; System.out.println(msg); //结果为:300,100+200为算术运算结果为300,再加上””为300
-
- 三元运算符
使用格式: 条件式?值1:值2
三元运算符的运算规则为: 若条件式的值为true,则整个表达式取值1,否则取值2.
-
int a = 100, b = 200; int flag = a > b ? 1 : -1; //因为a>b为false,所以整个表达式的值为-1,将其赋给flag,即:flag的值为-1.
-
- 运算符优先级
Java中的表达式就是使用运算符连接起来的符合Java规则的式子.运算符的优先级决定了表达式中运算的先后顺序.
通常优先级由高到低的顺序是:
1.自增和自减运算
2.算数运算
3.比较运算
4.逻辑运算
5.赋值运算
在编写程序时尽量使用括弧"()"运算符来限定运算次序,以免产生错误的运算顺序.


浙公网安备 33010602011771号