Java基本知识之运算符

本文详细介绍了Java中的算数运算符、赋值运算符、比较运算符、逻辑运算符以及位运算符的使用规则和实例。通过示例代码展示了先自增和后自增的区别,以及短路与和逻辑或的差异。此外,还提到了三元运算符的使用方法。文章旨在帮助读者深入理解Java中的运算符和逻辑控制。
摘要由CSDN通过智能技术生成

算数运算符

注意一下这个:

运算类型结果
a=2,b=++aa=3,b=3
a=3,b=a++a=3,b=2

数字++:先自增1,后运算

++数字:先运算,后自增1

public class Hello {
   public static void main(String[] args) {
      int a = 2;
      int b = ++a;
      int c = 5;
      int d = c++;
      System.out.println(a + " " + b + " " + c + " " + d);
   }
}

输出结果:
3 3 6 5

赋值运算符

  • 符号:=
    • 当”=“两侧数据类型不一样时,用自动数据类型转换或者强制类型转换。
    • 支持连续赋值。

比较运算符

== != < > <= >=
主要区分好=和==。

逻辑运算符

&一逻辑与 |一逻辑或
!一逻辑非 &&一短路与
||一短路或 ^一逻辑异或

photo1

注意:

  • 逻辑运算符操作的都是bool类型

区分&和&&

public class LogicTest {
   public static void main(String[] args) {
      boolean b1 = false;
      int num1 = 10;
      if (b1 & (num1++ > 0)) {
         System.out.println("001");
      } else {
         System.out.println("002");
      }
      System.out.println("num1=" + num1);
      boolean b2 = false;
      int num2 = 10;
      if (b1 && (num2++ > 0)) {
         System.out.println("001");
      } else {
         System.out.println("002");
      }
      System.out.println("num2=" + num2);
   }
}

结果:

002
num1=11
002
num2=10

结论:

  • 二者计算结果相同
  • 当两个都是true时,二者都会执行后面的运算
  • &当第一个条件是false仍然会判断后一个条件,&&当第一个条件是false就不再看后面的条件了

区分|和||

public class LogicTest {
   public static void main(String[] args) {
      boolean b1 = true;
      int num3 = 10;
      if (b1 | (num3++ > 0)) {
         System.out.println("001");
      } else {
         System.out.println("002");
      }
      System.out.println("num3=" + num3);
      boolean b2 = true;
      int num4 = 10;
      if (b1 || (num4++ > 0)) {
         System.out.println("001");
      } else {
         System.out.println("002");
      }
      System.out.println("num4=" + num4);
   }
}

运行结果:

001
num3=11
001
num4=10

结论:

  • |与||的运算结果相同
  • 当符号左边是false时,二者都会执行符号右边的运算
  • 当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算

位运算符

运算符运算例子含义
<<左移3 << 2 = 123 * 2 * 2 = 12
>>右移3 >> 1 = 13 / 2 = 1
>>>无符号右移3 >>> 1 = 13 / 2 = 1
&与运算6 & 3 = 2
|或运算6 |3 = 7
^异或运算6 ^ 3 = 5
~取反运算~6 = -6

结论:

  • 位运算符操作的都是整型的数据

  • << :在一定范围内,每向左移1位,相当于*2
    >> :在一定范围内,每向右移1位,相当于/2

三元运算符

(条件表达式)?表达式1:表达式2

说明:

  • 条件表达式的结果为boolean类型
  • 根据条件表达式真或假,决定执行表达式1还是表达式2
    • 如果表达式为TRUE,则执行表达式1
    • 如果表达式为FALSE,则执行表达式2
  • 表达式1和表达式2要求是一致的
public class SanYuanTest {
   public static void main(String[] args) {
      int m = 5, n = 10;
      int max = (m > n) ? m : n;
      System.out.println(max);
   }
}

结果:10

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值