iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
自我挑戰組

前端工程師的java學習紀錄系列 第 6

Day6-運算子(Operator)

  • 分享至 

  • xImage
  •  

Java中有許多的運算子,除了昨天提到的+ - * / % 外還有其他的運算子可以使用。

算術運算子

  • + : 正數。
int num = +5; 
System.out.println(num); // 5
  • - : 負數。
int num = -5; 
System.out.println(num); // -5
  • + : 加號。
int num = 1;
int num1 = 2;
int num3 = num + num1
System.out.println(num3); // 3
  • - : 減號。
int num = 1;
int num1 = 2;
int num3 = num1 - num
System.out.println(num3); // 1
  • + : 連接。

💡連接比較特別一點,只適用於String 和除了boolean 的基本型別運算使用,並且結果會是String 的型別

int num = 5;
String str = "Hello World";
System.out.println(str + num); // Hello World5
  • % : 取餘數。
int num = 10;
int num1 = 3;
int num2 = num % num1;
System.out.println(num2); // 1
  • a++ : 先賦值給某個數,再進行運算(a為變數名稱 )。
int num = 5;
int num1 = num++;
System.out.println(num) // 6
System.out.println(num1) // 5 
/* 💡原理: num 原本的值 5 會先放到記憶體中的位置,接著運算 num+1,
而後再將記憶體中5的值賦值給num1 */

byte b1 = 127;
b1++;
System.out.println(b1); // -128 
/* 💡使用 b1++ 時,不會自動類型提昇,所以在二進制的表達中,
會變成11111111,因此為 -128 */

int num2 = 10;
num2 = num2++; // 10 💡第一個範例的原理,所以最後 num2 又會被賦值為 10
  • ++a : 先進行運算,再進行賦值(a為變數名稱 )。
int num = 5;
int num1 = ++num;
System.out.println(num); // 6
System.out.println(num1); // 6
  • a----a : 同上方a++++a 的模式相同。

賦值運算子

  • +=
  • -=
  • /=
  • *=
  • %=

💡相當於某個變數 + - * / % 某數

int n1 = 10;
n1 += 5; // 可以看成是 n1 = n1 + 5; 💡不會自動類型提昇
System.out.println(n1); // 15 

比較運算子

  • > : 大於。
  • < : 小於。
  • >= : 大於等於。
  • <= : 小於等於。

💡結果會是true 或是false ,基本上就是拿來做條件運算使用

int n1 = 10;
int n2 = 5;
System.out.println(n1 > n2); // true
System.out.println(n1 < n2); // false
System.out.println(n1 >= n2); // true
System.out.println(n1 <= n2); // false

邏輯運算子

因為還沒講到條件判斷式,明天講到時會再說明一次這個部分,可能會清楚一點。

  • & : 在 & 左右兩邊的 boolean 必須都為true ,結果才為true

💡當& 左邊為false 時,雖然結果已為false ,依然會執行& 右邊的部分

  • && : 在 && 左右兩邊的 boolean 需要皆為true ,結果才為true

💡當&& 左邊為false 時,因為結果已為false ,不會執行&& 右邊的部分

  • | : 當| 左右兩邊有**其中**一個為true 時,結果就為true

💡當| 左邊為true 時,雖然結果已為true,依然會執行| 右邊的部分

  • || : 當|| 左右兩邊有**其中**一個為true 時,結果就為true

💡當||左邊為true 時,因為結果以為true ,所以不會執行|| 右邊的部分

  • ! : 會將truefalse 相反。
System.out.println(!true); // false 

System.out.println(!false); // true 
  • ^ : 兩個皆為true時,會是false,反之亦然,另外若是兩個不相同時會是true
System.out.println(true ^ true); // false

System.out.println(false ^ false); // true

System.out.println(true ^ false); // true

三元運算子

  • ? : : ? 前如為true 則顯示? : 中間,? 前如為false 則顯示: 後。
System.out.println((10 > 2) ? "1" : "2"); // 1
// 💡10 > 2 為 true,所以會print出1
System.out.println((10 < 2) ? "1" : "2"); // 2
// 💡10 < 2 為 false,所以會print出2

原本在規劃鐵人賽時就有想說要在每一天放幾個小問題隔天解答,結果每天太認真寫文章好忙都忘記這件事,所以這邊補給個意思意思一下:

  1. 使用terminal時,要怎麼進入某個資料夾?
  2. 使用terminal時,要怎麼返回上一層資料夾?
  3. Java的基本型別有哪幾種分類?分別是什麼?
  4. Java中,是誰負責幫我們編譯.java的檔案?要怎麼使用terminal編譯.java的檔案?
  5. Java中,是誰負責幫我們將.class的檔案編譯成機器碼,要怎麼使用terminal運行.class的檔案?
  6. Java中要怎麼宣告變數?
  7. 什麼是提昇?要怎麼強制型別轉換?
  8. int num = 10 % 3;,這個num是多少? %代表什麼樣的運算?
  9. a++++a在Java中有什麼不同?

明天解答~~~ :)


上一篇
Day5-變數與運算
下一篇
Day7-if/else、switch
系列文
前端工程師的java學習紀錄38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言