天天看點

Java基礎——常見運算符 常見運算符算數運算符比較運算符邏輯運算符自加自減運算符指派運算符三目運算符位運算符

常見運算符

常見運算符

  • 算數運算符
  • 比較運算符
  • 邏輯運算符
  • 自加自減運算符
  • 指派運算符
  • 三目運算符
  • 位運算符

算數運算符

Java中的算數運算符與我們生活中的算數運算基本相似,看下面的表格

運算符 名字 示例 運作結果
+ 7+8 15
- 9-4 5
* 3*5 15
/ 15/5 、16/5 3、3
% 求餘 16/5 1

一般運算中都是int變量,是以除的結果都不會有小數,如果我們遇到一定要除盡要有小數的情況,我們可以使用float或double類型的變量。

比較運算符

比較運算符又叫關系運算符,兩者意思都差不多,比較符号兩邊的關系嘛。

運算符 名字
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
== 等于

這裡的==和算數運算符裡的=,在Java裡是不一樣的,在我們生活中 = ”等号“具有指派和比較兩種意義,Java就用了兩種符号分開來表示,==就表示比較的意思。

注意!!!

比較運算符的結果是布爾類型:Boolean

也就是true/false

邏輯運算符

有三種邏輯運算符

  • 與 ,&&或者&,表示的是并且關系,全部為真才為真。
  • 或 ,||或者| ,表示的是或者的關系,隻要有一者為真就為真。
  • 非 ,! ,表示否定,取反的意思。

那麼問題來了,&&和&還有||和|,有什麼差別呢?

答案是 &&和||的效率更高,他們分别叫短路與和短路或。

什麼意思呢?

比如說吧用&&連接配接了好幾個條件時,第一個條件不滿足時,用這個符号的話我們的計算機就不會在判定後面的條件了,會直接輸出結果條件不成立;

而我們用&時,就算第一個條件不成立時,計算機也會繼續判定後面的條件。是以&&是短路與。

是以||同理,在判定到第一個正确的條件時就輸出結果。

是以大多都會用&&和||,因為效率更高哦!

自加自減運算符

自加自減運算符有兩種寫法

  • ++i ,- - i
  • i++ , i - -

    那麼他們有什麼差別呢?

    那就是他們的優先級别不同,符号在前的優先級别非常的高,僅僅次與括号,而符号在後面的優先級就非常低了,比指派符都低。

    怎麼個低法呢,看代碼吧

int a = 1;
int i = 1;
a = i++;
           

我們輸出a,a=1。

int a = 1;
int i = 1;
a = ++i;
           

我們輸出a,a=2;

是以符号在前和符号在後面,兩者的優先級是有差別的。

指派運算符

指派運算符

  • = ,将等号右側的值賦給左側的變量
  • += ,a+=10 等價于a= a+10,也就是先計算在指派
  • —=,a-=10等價于a=a-10
  • *= ,先乘在指派
  • /= ,先除在指派
  • %=,先取餘在指派

三目運算符

三目運算符,又稱條件運算符,它是唯一有3個操作數的運算符,有時又稱為三元運算符。

表達式 ? 值1:值2

int a = 10;
int b = 20;
int c = a>b ? 50:60; 
           

先判斷a>b的真假,若為真,則将50指派給c。

反之則将60指派給c。

位運算符

  • & 按位與運算 ,運算原則:相同二進制數位上數值為1,結果為1,否則結果為0;
  • | 按位或運算,運算原則:相同二進制數位上數值為0,結果為0,否則結果為1;
  • ^ 按位異或,運算原則:參與運算的兩個數相應位相同則結果為0,異号則為1;
  • ~ 按位取反,運算原則:二進制數位上0變1,1變0;
  • 左移操作“<<”:将運算數的二進制碼整體左移指定位數,左移之後的空使用“0”來補充,移出去的二進制數忽略不計。
  • 右移操作“>>”:将運算數的二進制碼整體右移指定位數,右移之後的空使用“符号位”來補充。移出

    去的二進制數忽略不計。若是正數使用“0”補充;若是負數使用“1”補充;

  • 右移操作”>>>“:将運算數的二進制碼整體向右以指定位數,右移之後的空用“0”來補充。是以這個符号又叫無符号右移運算。