1.算术运算符
1> 整数相除,只取整,舍弃小数。
2> 0不能做除数(算术异常);0.0也不能做除数(结果无穷大);0 / 0.0 (NaN,不是一个数字)。
3> 当 ‘+’ 两边的操作数中只要有一个字符类型,则按照字符连接符来处理。
将‘+’两边的操作数都不是字符串时,则按照算术运算符处理。
例子:
System.out.println("2" + 4 + 3) // 243
System.out.println(4 + 3 + "2") // 72
3> 自增自减运算符分为前缀与后缀两种。
a. 前缀自增自减法(++a,--a)
先进行自增或者自减运算,再进行表达式运算。
b. 后缀自增自减法(a++,a--)
先进行表达式运算,再进行自增或者自减运算 。
例子:
public class selfAddMinus{
public static void main(String[] args){
int a = 5;//定义一个变量;
int b = 5;
int x = 2*++a;
int y = 2*b++;
System.out.println("自增运算符前缀运算后a="+a+",x="+x); // a=6,x=12
System.out.println("自增运算符后缀运算后b="+b+",y="+y); // b=6,y=10
}
}
笔试题:
System.out.println("ia"); // ia=6
System.out.println("ia++ + ++ia"); // 14 = 6 + 8
System.out.println(ia); // ia=8
1.2 字符串连接运算符
“+” 可以是实现字符串的连接。同时可以实现字符串与其他数据类型的相连。
2.赋值运算符
实例:
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 0;
c = a + b;
System.out.println("c = a + b = " + c ); // 30
c += a ;
System.out.println("c += a = " + c ); // 40
c -= a ;
System.out.println("c -= a = " + c ); // 30
c *= a ;
System.out.println("c *= a = " + c ); // 300
a = 10;
c = 15;
c /= a ;
System.out.println("c /= a = " + c ); // 1
a = 10;
c = 15;
c %= a ;
System.out.println("c %= a = " + c ); // 5
c <<= 2 ;
System.out.println("c <<= 2 = " + c ); // 20
c >>= 2 ;
System.out.println("c >>= 2 = " + c ); // 5
c >>= 2 ;
System.out.println("c >>= 2 = " + c ); // 1
c &= a ;
System.out.println("c &= a = " + c ); // 0
c ^= a ;
System.out.println("c ^= a = " + c ); // 10
c |= a ;
System.out.println("c |= a = " + c ); // 10
}
}
笔试题:
byte b1 = 5 ;
b1 += 3 ; // 8 ,自动类型转换
// 3默认int类型,b1是byte类型,相加的结果为int类型
// 相当于发生从int类型向byte类型转换,从大==>小 发生强制类型转换
b1 = b1 + 3 // error ,需要强制类型转换
b1 = (byte) b1 + 3; // error
b1 = (byte)(b1 + 3); //损失精度
System.out.println(b1);
3.关系运算符
实例:
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) ); // F
System.out.println("a != b = " + (a != b) ); // T
System.out.println("a > b = " + (a > b) );// F
System.out.println("a < b = " + (a < b) ); // T
System.out.println("b >= a = " + (b >= a) ); // F 大于或者等于
System.out.println("b <= a = " + (b <= a) ); // T 小于或者等于
}
}
注意:
不支持二元应算符,需要逻辑运算符处理
System.out.println(10 <= ia <= 99) ; // error
4. 逻辑运算符
实例:
public class Test {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a&&b)); // F
System.out.println("a || b = " + (a||b) ); // T
System.out.println("!(a && b) = " + !(a && b)); // T
}
}
注意:
1> 执行与(&&)语句时,若第一个条件为假,则跳过第二个条件执行。
boolean b3 = (++ib == 3 && ++ic ==3);
System.out.println(b3); // F
System.out.println(ib); // 4
System.out.println(ic); // 2
2> 执行或(||)语句时,若第一个条件为真后,则跳过第二个条件的执行。
boolean b4 = (++ib == 5 || ++ic ==3);
System.out.println(b3); // T
System.out.println(ib); // 5
System.out.println(ic); // 2
5. 条件/三目运算符
?:
variable x = (expression) ? value if true : value if false
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
执行流程:
判断表达式是否成立?
a. 若表达式成立,则执行表达式1
b. 若表达式不成立,则执行表达式2
实例:
public class Test {
public static void main(String[] args){
int a , b;
a = 10;
// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
b = (a == 1) ? 20 : 30;
System.out.println( "Value of b is : " + b ); // b = 30
// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
b = (a == 10) ? 20 : 30;
System.out.println( "Value of b is : " + b ); // b = 20
}
}
嵌套使用三目运算符:
检测用户输入的数是正数还是负数
import java.until.Scanner;
public class TestThreeEye {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:")
int num = sc.nextInt();
System.out.println(num > 0 ? "负数":(num > 0 ? "正数" : "零"))
}
}