Day03-2.java运算符

概述:

用来进行数据运算各种符号

罗列:

  1. 算术运算符
  2. 自增自减运算符
  3. 赋值运算符
  4. 比较运算符
  5. 逻辑运算符
  6. 位移运算符
  7. 三元运算符

算术运算符

  1. 分类:+ - * / %
  2. 说明:
    +:加运算符
    (1)进行数值加法运算
    (2)进行字符串的拼接
    (3)可以用来表示正数
    -:减运算符
    (1)进行数值的减法运算
    (2)可以用来表示负数
    *:乘运算符
    (1)用来进行数值的乘法运算
    /:除运算符 取商运算符
    (1)两个整数相除,不管是否能整除。都只取商,不取余数
    (2)如果有一个数是小数,结果还是一个小数
    %:取余运算符 取模运算符
    (1)获取两个数相除的余数
    (2)余数的正负,只跟前面的被除数正负有关,前面数是正数,结果就是正数,反之就是负数
class Demo01 {
	public static void main(String[] args) {


		System.out.println(10 / 3);//3
		System.out.println(9 / 3);//3
		
		System.out.println(10 % 3);//1
		System.out.println(9 % 3);//0

		System.out.println(-10 % 3);//    -1
		System.out.println(10 % 3);//      1
		System.out.println(10 % -3);//     1
		System.out.println(-10 % -3);//   -1
	}
}

自增自减运算符

  1. 分类:
    + + − − ++ -- ++
  2. 作用:
    + + ++ ++:可以在某一个变量的值的基础上 + 1 + 1 +1
    − − -- :可以在某一个变量的值的基础上 − 1 -1 1
    3、特点:
    (1)如果将变量的 + + ++ ++或者 − − -- ,单独作为一句定义。可以将 + + ++ ++或者 − − -- 放在变量的前面或者后面,都是自增1或者自减1。
    (2)如果变量的 + + ++ ++或者 − − -- 不是单独作为一句定义。
             将 + + ++ ++或者 − − -- 放在变量的后面,是先取值,后运算
             将 + + ++ ++或者 − − -- 放在变量的前面,是先运算,后取值
class Demo02 {
   public static void main(String[] args) {
   	
   	//不管将++放在变量前还是后,都是+1
   	int i = 10;
   	//i++;
   	++i;
   	System.out.println(i);//11
   	//不管将--放在变量前还是后,都是-1
   	int j = 10;
   	//j--;
   	--j;
   	System.out.println(j);//9
   	//将++或者--放在变量后面,先取值后运算
   	int k = 10;
   	System.out.println(k++);//10
   	System.out.println(k);//11
   	int g = 10;
   	System.out.println(g--);//10
   	System.out.println(g);//9
   	//将++或者--放在变量的前面,先运算后取运算后的值
   	int a = 10;
   	System.out.println(++a);//11
   	System.out.println(a);//11
   	int b = 10;
   	System.out.println(--b);//9
   	System.out.println(b);//9
   }
}

赋值运算符

  1. 分类:
    基础的赋值运算符:=
    将右边的数据,赋给左边的变量
    扩展的赋值运算符:
    +=, -= , *= , /= ,%=
    特点:先将符号左右两边的数据进行对应的运算,将运算后的结果再赋值
class Demo03 {
   public static void main(String[] args) {

   	int i = 10;
   	i += 10;//i = i + 10;  
   	System.out.println(i);//20

   	i -= 10;//i = i - 10
   	System.out.println(i);//10

   	i *= 10;//i = i * 10
   	System.out.println(i);//100

   	i /= 10;//i = i / 10
   	System.out.println(i);//10

   	i %= 10;//i = i % 10
   	System.out.println(i);//0

   }
}

比较运算符

  1. 分类:
    基础的比较运算符
    > , > = , < , < = > , >= , < , <= >,>=,<,<=
    注意:只能进行数值之间的比较:整数 小数 字符
    扩展的比较运算符:
    = = , ! = == , != ==,!=
    = = == ==:比较数据之间是否相等,相等为真不等为假
    ! = != !=:比较两个数据之间是否是不一样,一样为假,不一样为真
    注意:数值之间可以比较、字符串之间可以比较、布尔之间可以比较。
    不能数值、字符串、布尔混合比较
  2. 总结:
    以上运算符比较的结果肯定是一个布尔类型的值
class Demo04 {
	public static void main(String[] args) {

		System.out.println(10 > 10);//false
		System.out.println(10 >= 10);//true

		System.out.println(10 < 10);//false
		System.out.println(10 <= 10);//true

		System.out.println(10 > 9.999);//true
		System.out.println(10 > 'a');//false
		System.out.println('a' < 'c');//true
		//不能拿数值类型和布尔类型比较大小
		//System.out.println(10 > true);
		//System.out.println(10 <= false);
		//不能拿数值类型和字符串类型比较大小
		//System.out.println(10 > "你好");
		//System.out.println('a' > "下午好");
		//布尔类型和字符串类型不能比较大小
		//System.out.println(true > false);
		//System.out.println("你好" < "我不好");
	}
}

逻辑运算符

  1. 分类:
    & , | , !, && , ||
  2. &:逻辑与
    符号两边的表达式结果都为真,最终结果为真
    符号两边的表达式有一个结果为假,最终结果为假
    特点:
    如果前面的表达式结果不管是真是假,后面的都会执行
  3. |:逻辑或
    符号两边的表达式结果有一个为真,最终结果就为真
    符号两边的表达式结果全都为假,最终结果就为假
    特点:
    不管前面的表达式是真是假,后面的都会执行
  4. !:逻辑非
    取反:结果为真,取假;结果为假,取真
  5. &&:逻辑短路与
    比较的方式和&一模一样
    特点:
    如果前面的表达式结果为假,后面的表达式不会执行
  6. ||:逻辑短路或:
    比较方式和|一模一样
    特点:
    如果前面的表达式结果为真,后面的表达式就不会执行
class Demo05 {
	public static void main(String[] args) {
		
		//前面表达式不管真假,后面表达式都会执行
		int i = 10;	
		boolean boo2 = (100 < 10) & (++i>10);
		System.out.println(boo2);//false
		System.out.println(i);//11
		//前面表达式为假,后面的表达式不会执行
		int j = 10;
		boolean boo3 = (100 < 10) && (++j>10);
		System.out.println(boo3);//false
		System.out.println(j);//10

		//前面表达式不管真假,后面的表达式都会执行
		int k = 10;
		boolean b4 = (100 == 100) | (k++>10);
		System.out.println(b4);//true
		System.out.println(k);//11
		//前面表达式为真,后面的表达式不会执行
		int g = 10;
		boolean b5 = (100 == 100) || (g++>10);
		System.out.println(b5);//true
		System.out.println(g);//10
	}
}

位移运算符

  1. 分类:
    << >> >>>
  2. 说明:
    < < << <<:左移运算符
              数据向左移动一位,扩大2倍;移动两位,扩大4倍…
    > > >> >>:右移运算符
              数据向右移动一位,缩小2倍;移动两位,缩小4倍…
    > > > >>> >>>:无符号右移运算符
                数据向右移动一位,缩小2倍;移动两位,缩小4倍…
             特点:只能操作正数,不能操作负数
  3. 总结:
    使用位移运算符和使用 ∗ 2 , / 2 *2 , /2 2,/2
    结果上没有区别,使用位移运算符效率高

三元运算符

  1. 元:表达式或者数据
  2. 三元运算符:可以操作三个表达式或者三个数据的符号
  3. 格式:
    表达式1 ?表达式2:表达式3;
  4. 说明:
    (1)表达式1,必须是一个布尔表达式:运算的结果要么为真,要么为假
    (2)表达式2和表达式3可以是任何操作
  5. 执行的顺序:
    (1)先执行表达式1,结果要么为真,要么为假
    (2)如果表达式1的结果为真,执行表达式2,以表达式2的结果为整个表达式的最 终结果。
    (3)如果表达式1的结果为假,执行表达式3,以表达式3的结果为整个表达式的最终结果。
class Demo06 {
	public static void main(String[] args) {
		int x = 100;
		int y = 20;
		int max;
		//先执行x > y 这个布尔表达式
		//如果为真,取x
		//如果为假,取y
		max = x > y ? x : y;
		System.out.println("最大值为:" + max);

		//定义三个变量,求出三个变量之间的最大值
		int a = 100;
		int b = 20;
		int c = 30;
		int maxabc = (a > b ? a : b) > c ? (a > b ? a : b) : c;
		System.out.println("最大值为:" + maxabc);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值