JAVA 运算符

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 ? "正数" : "零"))
	}
}

6. 运算符优先级

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值