第二天 运算符

自增减运算符

  • ++ 自增    当前变量自身  加1     ia++     ++ia     ia  =  ia + 1 
  • - - 自减    当前变量自身  减1     ia- -      - -ia     ia = ia - 1 
  • 前加加后加加的区别
  • 后++表示先让变量ia的数值作为整个表达式的结果,然后再让ia变量自身的数值加1。
  • 前++表示先让变量自身的数值加1,然后再让变量的数值作为整个表达式的结果。

自增减运算符的笔试考点

  • 笔试考点
  •  int ia= 13   (ia ++ + ++ia)//   13+15 = 28

逻辑运算符

&& 表示逻辑与运算符     二者缺一不可

||    表示逻辑或运算符     只要一个真

!  表示逻辑非运算符     相当于取反, 真为加,假为真

逻辑运算符两边的操作数均为boolean类型表达式

/*
	编程实现了逻辑运算符的使用
*/
public class LogicTest {
	public static void main (String[] args) {
		//1.声明两个boollean类型的变量并初始化
		boolean b1 = true;
		boolean b2 = false;
		//2.打印变量的数值
		System.out.println("b1  = " + b1);  //b1 = true
		System.out.println("b2  = " + b2);  //b2 = false
		System.out.println("---------------------------------");  
		//3.使用上述变量实现逻辑运算符的使用
		boolean b3 = b1 && b2;
		System.out.println("b3  = " + b3);    //fallse
		System.out.println(b1 && b2);         //false 并且
		System.out.println(b1 || b2);         //true  或者
		System.out.println(!b1);              //false 取反
		System.out.println(!b2);              //true
	}
}
  • 逻辑运算符的短路特性
    • 对于逻辑与运算符来说,若第一个表达式为假则结果为假,此时跳过第二个表达式
    • 对于逻辑或运算符来说,若第一个表达式为真则结果为真,此时跳过第二个表达式
  • 条件/三目运算符

    • 条件表达式?表达式1:表达式2
    • 判断条件表达式是否成立,若成立则执行表达式1,否则执行表达式2
    • ia>ib?ia:ib
    • 2   默认为整数直接量   int类型
    • byte b1 = 10;
      		System.out.println("b1 = " + b1); // b1 = 10
      		//b1 = b1 + 2; // 错误: 不兼容的类型: 从int转换到byte可能会有损失         byte + int 相加结果还是int类型
      		//b1 = b1 + (byte)2; // 错误: 不兼容的类型: 从int转换到byte可能会有损失   byte + byte 相加结果还是int类型  编译器优化
      		//b1 = (byte)(b1 + 2); // 强制类型转换,将int类型转换为byte
      		b1 += 2; // 真正等价于b1 = (byte)(b1 + 2);

      b1 += 2; // 真正等价于b1 = (byte)(b1 + 2);自带强转。

  • 赋值运算符的笔试考点:

    •         //ia == 2; - 表示判断变量ia的数值是否等于2
              //2 == ia; - 表示判断2是否等于变量ia的数值,从结果上来说等价,推荐该方式
              //ia = 2;  - 表示将2赋值给变量ia,覆盖变量ia原来的数值
              //2 = ia;  //- 编译报错  错误: 意外的类型

  • 移位运算符

    • <<  左移运算符,将数据的二进制位向左移动,右边用0补充

    • >>  右移运算符,将数据的二进制位向右移动,左边用符号位补充

    • >>>  逻辑右移运算符 , 将是数据的二进制位向右移动,左边用0补充

/*
	编程实现了位移运算符的使用
*/
public class MoveText {
	public static void main (String[] args) {
		//1.声明一个byte类型的变量并初始化
		byte b1 = 13;
		//2.打印变量的数值
		System.out.println("b1  = " + b1);  //b1 = 13
		System.out.println("---------------------------------");  
		//3.移位运算符的使用
		// 13的二进制是:0000 1101 =>左移移位的结果是:0001 1010 =>  26
		byte b2 = (byte)(b1 << 1);  //赋值运算符里面讲过 ,需要强制转换。
		System.out.println("b2 = " + b2);  // 错误: 不兼容的类型: 从int转换到byte可能会有损失 
		System.out.println(b1 << 1)//左移一位相当于当前整数的数值乘以2
		System.out.println(b1 << 2)//左移一位相当于当前整数的数值乘以4
		System.out.println("---------------------------------"); 
		//右移的移位运算
		System.out.println(b1 >> 1)//   6  左移一位相当于当前整数的数值除以2
		System.out.println(b1 >> 2)//   3  左移一位相当于当前整数的数值除以4
		//  逻辑右移   对于非负数来说,逻辑右移与右移一样
		System.out.println(b1 >> 2
	}
}

  • 位运算符:
    • & 表示按位与运算符,按照二进制位进行运算,同1为1 ,  一0为0
    •  | 表示按位或运算符,按照二进制位进行运算,一1为1 ,  同0为0
    • ~ 表示按位取反运算符,按照二进制位进行取反,1为0 ,  0为1
    • ^ 表示按位异或运算符,按照二进制位进行异或,同为0 ,  不同为1
    • ()优先级最高    = 优先级最低
  • 任务总结 

    • 算术运算符  + - * / %
    • 字符串连接符   注意区分 + 两边的操作数,只要有一个是字符串,就是字符串连接符
    • 关系运算符    > >= < <= == !=
    • 自增减运算符   ++   --
    • 逻辑运算符   &&   ||    !   
    • 条件/三目运算符    ?:
    • 赋值运算符    =    +=  -=  *=   /=...
    • 移位运算符   左移    右移    逻辑右移
    • 位运算符     &    |    ^   ~
    • 运算符的优先级  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值