【学习笔记】Java_基础_常见运算符


算术运算符


  • 加法_ +
  • 减法_ -
  • 乘法_ *
  • 除法_ /
  • 取余_%

因为算术运算符比较简单
下面通过一块代码示例 统一解释

int num_1 = 10,num_2 = 20;

int num_3 = num_1 + num_2;
// 此时 num_3 的值为 30

int num_4 = num_1 - num_2;
// 此时 num_4 的值为 -10

int num_5 = num_1 * num_2;
// 此时 num_ 的值为 200

int num_6 = num_1 / num_2;
int num_7 = num_2 / num_1;
// 此时 num_6 的值为 0 因为 10 除 20 值为 0.5 但是 int 自动将小数向下取整
// 此时 num_7 的值为 2 因为 20 除 10 值为 2 

int num_8 = num_1 % num_2;
// 此时 num_8 的值为 10 因为 10 对 20 取余 为 10
int num_9 = num_2 % num_1;
// 此时 num_9 的值为 0 因为 20 对 10 取余 为 0

关系运算符


  • 大于_ >
  • 小于_ <
  • 大于等于_ >=
  • 小于等于_ <=
  • 不等于_ !=
  • 等于_ ==

关系运算符用于比较
对比结果一般为布尔结果 (true or false)
一样通过一块代码示例 做简单解释

int num_1 = 10,num_2 = 20,num_3 = 10;
// 那么
( num_1 > num_2 ) // 为 false
( num_1 < num_2 ) // 为 true
( num_1 >= num_2 ) // 为 false
( num_1 <= num_2 ) // 为 true
( num_1 != num_2 ) // 为 true
( num_1 == num_2 ) // 为 false
( num_1 == num_3 ) // 为 true

逻辑运算符


连接多个条件的关联关系的一种运算符
称作逻辑运算符

  • 与_ && (&)

    表示的是并且关系 全部为真则为真(true) 否则为假

    int a = 10,b = 20,c = 10,d = 20;
    (a == b && a == c) // 即使 a == c 为真 但是 a == b 为假 因此整体为 假 false
    (b == d && a == c) // 因为 a == c 为真 而且 b == d 为真 因此整体为 真 true
    
  • 或_ || (|)

    表示或者的关系,只要一者为真则为真,全部为假才为假

    int a = 10,b = 20,c = 10,d = 20;
    (a == b || a == c) // 因为 a == c 为真 即使 a == b 为假 因此整体为 真 true
    (b == d || a == c) // 因为 a == c 为真 并且 b == d 为真 因此整体为 真 true
    (a == b || c == d) // 因为 a == b 为假 而且 c == d 也为假 因此整体为 假 false
    
  • 非_ !

    逻辑关系否定,取反

    int a = 10,b = 20,c = 10;
    !(a == b) // 即使 a == b 为假 但是使用了 ! 取反 因此整体为 真 true
    !(a == b || a == c) 
    // 因为 a == c 为真 即使 a == b 为假 因此整体本应该为 真 true
    // 但是死使用了 ! 取反 因此整体为 假 false
    

值得注意的是 与&& 和 或|| 都具有单写的符号
也就是 与可以写作 && or & 或可以写作 || or |
这两种写法 用法上是一致的
但是区别也有
双写的符号判断出结果后 即对后续条件不进行判断

比如 && 判断第一个条件和第二个条件结果为真 判断第三个条件结果为假
此时,即返回布尔值为假 不再对后续条件进行判断
即使第四个条件为真 也不做判断处理 直接无视
但是 如果为单写的 &
那么 即使判断到第三个条件为假 整个式子的布尔值已经出现
依然会继续判断后续的条件 直到全部条件被判断结束
因此 从内存效率的角度上来看 建议使用双写而不是单写
&&(&) 如此 ||(|) 亦然


自加自减


自加或者自减 都是在原有的基础上 自身加 1 或者自身减 1

  • 前自加_ ++a

    int num_1 = 10;
    ++ num_1;
    // 此时 num_1 的值即为 11
    
  • 后自加_ a++

    int num_2 = 10;
    num_2 ++;
    // 此时 num_1 的值为 11
    

    前自加和后自加在这里的效果是一样的
    但其实前自加和后自加是有明显区别的
    前自加的优先级非常高 仅次于括号
    后加加的优先级非常低 甚至比赋值符都低

    以下是代码示例对比:

    int num_1 = 10,num_2 = 20;
    int num_3 = ++ num_1;// 此时 num_3 值为31
    int num_4 = num_2 ++;// 此时 num_4 值为20 但是 num_2 值 被赋值以后 再自加 是21了
    

在这里插入图片描述

  • 前自减_ --a
  • 后自减_ a–

自减的情况同理
可以类比自加


赋值运算符


  • 赋值_ =
  • 加等于_ +=
  • 减等于_ -=
  • 乘等于_ *=
  • 除等于_ /=
  • 模等于_ %=

赋值运算符比较简单,也没有什么细节注意点
直接贴一段代码块 供参考

int a = 10,c = 15;
int b = a;//此时 b 就等于 a 等于 10
c += 10;// 此式等价于 c = c + 10; 那么 c 等于 25
c -= 10;// 此式等价于 c = c - 10; 那么 c 等于 15
a *= b;// 此式等价于 a = a * b; 那么 a 等于 100
a /= b;// 此式等价于 a = a / b; 那么 a 等于 10
c %/ a;// 此式等价于 c = c % a; 那么 c 等于 5 

三目运算符


  • 三目运算符模板及解释
    •  // 表达式 ? 结果1 : 结果2
      

      说明 : 三目运算符的第一个元素是逻辑表达式
      这个表达式的布尔值为真(true) 则运算结果为 结果1
      如果表达式的布尔值为假(false) 则运算结果为 结果2
      其实完全可以将三目运算符视作 if else 结构的变种 即:

      if (表达式) {
      	结果1;
      } else {
         	结果2;
      }
      
  • 代码示例:
    // 示例
    int a = 10,b = 20;
    int c = a > b ? 100 : 200;
    // 此时 变量 c 的值为 : 200
    

    实际开发中 建议善用三目运算符 灵活减少代码量


位运算符

位运算符比较复杂 但是熟练运用位运算符可以极大的提升程序效率
鉴于位运算符复杂且重要 这部分内容暂时空缺 有空会补

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值