17-运算符-赋值运算符
赋值运算符”=”不要理解为数学上面的等号,功能是将右边的操作结果赋给左边操作数。
变量类型 变量名 = 所赋的值;
左边必须是一个变量,右边可以是任何数值或者表达式(变量、常量或者有效表达式)。
int a = 12;
float f = 12.3f * 12;
练一练
- 定义三个变量,其中两个的和赋给第三个变量。
int a = 12, b = 23;
int c = a + b;
- 定义三个变量,其中两个是另外一个和一个字面数的和,然后输出结果。使用连等号
a = b = 2;
int a = 12;
int b, c;
b = c = a + 2;
18-运算符-算术运算符
算术运算符包括:
| 运算符 | 含义 |
|---|---|
| + | 加 |
| – | 减 |
| * | 乘 |
| / | 除 |
| % | 求余 |
他们都是二元运算。当然 +、- 也可以表示正负号。
除法运算中0不能作为除数,否则会报异常:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at cn.bamn.Image.main(Image.java:11)Code language: PHP (php)
int a = 1, b = 0;
int c = a + b;
int d = a - b;
int e = a * b;
int f = a / b; //两个整数相除 结果会去掉小数部分 只保留整数部分
int g = a % b;
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);Code language: JavaScript (javascript)
练一练
创建两个变量,一个float,一个int,然后分别输出他们的和、差、商、积和余。
float f = 12.3f;
int i = 12;
//int a = f + i; //一个float类型一个是int类型 他们的和是float类型 i会自动转换为float类型再和f相加
float a = f + i;Code language: JavaScript (javascript)
19-自增和自减运算符
他们是单目运算符,可以用在操作元之前或者之后。操作元必须是整数或者浮点数变量。
运算符放在前或者后是有区别的:
++a或--a:在使用a变量之前,先进行+1或者-1a++或a--:先使用a,再将a的值+1或者-1
int a = 10;
System.out.println(a++); //++在后面 则先让a进行操作 再+1 a在这里就是传给println输出
//上面这一句代码相当于 System.out.println(a); a = a + 1;
System.out.println(a);Code language: JavaScript (javascript)
int a = 10;
System.out.println(++a); //++在前 则先让a进行+1 再让a进行下一步操作 a在这里就是传给println输出
//上面这一句代码相当于 a = a + 1; System.out.println(a);
System.out.println(a);Code language: JavaScript (javascript)
练一练
说说下面的结果是多少:
int a = 2;
int b = a++ + 3 - --a; // 5 - --a ==》5 - 2 ==》 3
System.out.println(b);Code language: JavaScript (javascript)
20-比较运算符
属于二元运算符,用于变量、常量或者字面值等之间的比较。比较的结果是boolean类型。当条件成立的时候结果是true,否则是false。
public static void main(String[] args) {
int a = 13, b = 2;
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a <= b);
System.out.println(a >= b);
System.out.println(a == b); //等于判断是用 双等号
System.out.println(a != b);
}Code language: JavaScript (javascript)
练一练
定义两个int变量,分别赋值,然后分别比较使用上面的比较符号,输出他们的比较结果。
21-逻辑运算符
逻辑包含:
- 逻辑与:
&&或者& - 逻辑或:
||或者| - 逻辑非:
!
计算的结果是布尔类型。
在java中 && 和 & 都表示与,区别是 && 如果遇到第一个是false了,则不再进行第二个判断了,就算第二个出错了。所以 && 通常称为短路与,而 & 成为非短路与。
boolean b1 = true, b2 = false;
System.out.println(b1 && b2);
System.out.println(b1 || b2);
System.out.println(!b1);Code language: JavaScript (javascript)
boolean b1 = true, b2 = false;
System.out.println(b1 & b2);
System.out.println(b1 | b2);
System.out.println(!b1);Code language: JavaScript (javascript)
短路与的特点
boolean b1 = false, b2 = false;
int a = 0;
System.out.println(b1 && 2 / a > 2); //如果是&&短路与 则一旦b1为false 那么不再看b2 就算b2出错了Code language: JavaScript (javascript)
如果换成非短路与:
System.out.println(b1 & 2 / a > 2);
//Exception in thread "main" java.lang.ArithmeticException: / by zeroCode language: JavaScript (javascript)
短路或的特点
boolean b1 = true, b2 = false;
int a = 0;
System.out.println(b1 || 2 / a > 2); //如果b1为true 则不会再看后面的Code language: JavaScript (javascript)
换成非短路或则还是会报错:
System.out.println(b1 | 2 / a > 2);
练一练
尝试进行 && 和 & 的区别,|| 和 | 的区别。第二个表达式用 /0 的错误做法。
22-三元运算符
Java唯一一个三目运算符。
boolean b = 12 > 5 ? true : false;Code language: JavaScript (javascript)
三目运算符其实可以使用 if else 的写法。冒号前后的这个值的类型必须一样。
boolean b = 12 > 3 ? true : false; //如果12>3结果是true 则使用:前面的值true 否则则后面false
int a = (true || false) ? 1 : 3;
float f = 2 < 3 ? 2.3f * 3.4f : 12.3f;Code language: JavaScript (javascript)
练一练
使用三目运算符计算两个数最大的值赋给第三个数:
int a = 234, b = 3243;
int max = a > b ? a : b;
23-运算符的优先级
当有多个运算符一起的式子的时候,先算哪个后算哪个,这里就有运算符的优先级的问题。总体来说:
增量或减量运算符 > 算术运算符 > 比较运算 > 逻辑运算 > 赋值运算
练习一下
判断一个数字的奇偶性,使用三目运算,使用 System.in 读入一个数。
package cn.bamn;
import java.util.Scanner;
public class Image {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数:");
int input = scan.nextInt();
String res = input % 2 == 0 ? "是偶数" : "是奇数";
System.out.println(res);
}
}Code language: JavaScript (javascript)