CodeGym /Java Blog /Toto sisi /Java 中的數字運算符
John Squirrels
等級 41
San Francisco

Java 中的數字運算符

在 Toto sisi 群組發布
你好!今天我們來探討一個很重要的話題,即Java中的數值運算符
Java 中的數字運算符 - 1
在編程中,數字無處不在。如果你深入研究並記得高中,你可能還記得計算機以數字格式表示所有信息:零和一的組合,也稱為二進制代碼。
Java 中的數字運算符 - 2
編程中有很多數字運算符,因此我們將使用示例來探索其中最重要的運算符 :) 讓我們從最簡單的開始:算術運算符。這些是眾所周知的加法 ( +)、減法 ( -)、乘法 ( *) 和除法 ( /) 運算符。

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       System.out.println(x+y);
       System.out.println(x-y);
       System.out.println(x*y);
       System.out.println(x/y);
   }
}
控制台輸出: 1032 966 32967 30 這些你都已經用過了。對於這個組,您可以添加餘數或模 ( %) 運算符。

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
控制台輸出: 1 在此示例中,我們將 33 除以 2。結果為 16,帶有一個不能被 2 整除的額外“尾巴”(一)。此“尾巴”是“除法餘數”運算的結果。Java 還實現了比較/關係運算符(就像在數學中一樣)。他們可能在學校也很熟悉:
  • 等於 ( ==)
  • 大於 ( >)
  • 小於 ( <)
  • 大於或等於 ( >=)
  • 小於或等於 ( <=)
  • 不等於 ( !=)
在這裡你應該注意一個重要的點,它會導致很多初學者犯錯誤。“等於”運算符寫成==,而不是= 在 Java 中,single=賦值運算符,當一個變量被賦值一個數字、字符串或另一個變量的值 時使用它。
Java 中的數字運算符 - 3

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// We expect false to be displayed
   }
}
控制台輸出: 999 糟糕!這顯然不是我們預期的結果。這是一種完全不同的數據類型:我們希望看到一個布爾值,但我們得到了一個數字。都是因為我們在括號中使用了賦值運算符而不是比較運算符x=y (999)的值y賦給了變量x,然後我們顯示了 的值x。這是正確的方法:

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
控制台輸出: false 現在我們已經正確比較了兩個數字!:) 這是賦值運算符 ( =) 的另一個特性:它可以“鏈接”在一起:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;
       int z = 256;

       x = y = z;
       System.out.println(x);
   }
}
控制台輸出: 256 記住分配是從右到左。該表達式 ( x = y = z) 將分步執行:
  • y = z, 那是,y = 256
  • x = y, 那是,x = 256

一元運算符。

它們被稱為“ unary ”,來自“ uno ”這個詞,意思是“一個”。他們之所以得到這個名字,是因為與以前的運算符不同,它們作用於單個數字,而不是多個。這些包括:
  • 一元減號。它翻轉數字的符號。


public class Main {

   public static void main(String[] args) {

       int x = 999;

       // Change the sign for the first time
       x = -x;
       System.out.println(x);

       // Change the sign for the second time
       x= -x;
       System.out.println(x);
   }
}
控制台輸出: -999 999 我們使用了兩次一元減號運算符。結果我們的數先是負數,然後又變成正數了!
  • 遞增 (++) 和遞減 (--)
運算++符將數字增加 1,並且--運算符將數字減少相同的數量。

public class Main {

   public static void main(String[] args) {

       int x = 999;
       x++;
       System.out.println(x);

       x--;
       System.out.println(x);
   }
}
控制台輸出: 1000 999 如果您聽說過 C++ 語言,您可能會熟悉這種表示法。它的創建者用這個有趣的名字來傳達“C++ 是 C 語言的擴展”的想法 有兩種類型的遞增和遞減運算符:postfixprefixx++- 後綴 ++x- 前綴 將加號/減號放在數字之前或之後的根本區別是什麼?我們將在以下示例中看到:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}

控制台輸出: 999 不對勁!我們想增加x1 並將新值分配給變量 y。換句話說,y 應該是 1000。但我們卻得到了其他東西:999。似乎 x 沒有增加並且增量運算符不起作用?但它確實奏效了。為了說服自己,請嘗試x在最後展示 :)

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
控制台輸出: 999 1000 事實上,這正是這個操作被稱為後綴的原因:它在主表達式之後執行。這意味著,在我們的例子中: int y = x++; y = x首先執行(變量y將被初始化為 的值x),然後才 x++執行 如果這不是我們想要的行為怎麼辦?然後我們需要使用前綴表示法:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
在這種情況下,++x首先處理,然後才處理y = x;執行。 您應該立即將此差異記入內存,以避免在實際程序中犯錯誤,在實際程序中使用後綴而不是前綴可能會顛倒一切:)

複合運算符

此外,Java中還有所謂的複合運算符。它們結合了兩個運算符:
  • 任務
  • 算術運算符
這些包括:
  • +=
  • -=
  • *=
  • /=
  • %=
讓我們考慮一個例子:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
控制台輸出: 1032 x += y表示x = x + y. 為簡潔起見,連續使用這兩個符號。組合-=*=/=%=類似的方式工作。

邏輯運算符

除了數字運算符之外,Java 還具有涉及布爾值(truefalse)的運算。這些操作是使用邏輯運算符執行的
  • !- 邏輯。它翻轉布爾值

public class Main {

   public static void main(String[] args) {

       boolean x = true;
       System.out.println(!x);
   }
}
控制台輸出:
  • &&- 邏輯。只有當兩個操作數都為真時,它才返回真。

public class Main {

   public static void main(String[] args) {

       System.out.println(100 > 10 && 100 > 200);
       System.out.println(100 > 50 && 100 >= 100);
   }
}
控制台輸出: false true 第一次運算結果為false,因為其中一個操作數為false,即100 > 200. 要返回 true,&&運算符要求兩個操作數都為 true(如第二行中的情況)。
  • ||- 邏輯當至少一個操作數為真時,它返回真。
當我們使用此運算符時,我們之前的示例會產生不同的結果:

public class Main {

   public static void main(String[] args) {

       System.out.println(100 > 10 || 100 > 200);
   }
}
控制台輸出: true 表達式100 > 200仍然為 false,但對於OR運算符來說,第一部分 ( 100 > 10) 為 true 就完全足夠了。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION