Nền tảng Kiến thức - Hành trang tới Tương lai
Card image

Chương 2-Bài 6. Toán tử (operators) trong Java

Tác giả: Dương Nguyễn Phú Cường #11980
Ngày đăng: 2 tháng trước
Lượt xem: 148

Toán tử (Operators) trong Java

Toán tử (Operators) trong Java là các ký hiệu dùng để thực hiện các phép toán số học, hoặc phép so sánh, phép gán...

Toán tử (Operators) được chia làm các nhóm như sau:

  • Toán tử số học (Arithmetic Operators)
  • Toán tử quan hệ (Relational Operators)
  • Toán tử dịch bit (Bitwise Operators)
  • Toán tử logic (Logical Operators)
  • Toán tử gán (Assignment Operators)
  • Toán tử khác (Misc Operators)

Toán tử số học (Arithmetic Operators)

Toán tử (Operator) Diễn giải Ví dụ

+

(Phép cộng - Addition)

Cộng 2 vế trái và phải 10 + 5

-

(Phép trừ - Subtraction)

Trừ 2 vế trái và phải 10 - 5

*

(Phép nhân - Multiplication)

Nhân 2 vế trái và phải 10 * 5

/

(Phép chia - Division)

Chia 2 vế trái và phải, lấy phần nguyên.

10 / 5

Được 2

%

(Phép chia lấy dư - Modulus)

Chia 2 vế trái và phải, lấy phần dư.

10 % 3

Được 3, dư 1

=> kết quả trả về 1

++

(Phép tăng 1 đơn vị -Increment)

Phép tăng 1 đơn vị.

int a = 5;

a++;

Kết quả a = 6;

--

(Phép giảm 1 đơn vị - Decrement)

Phép giảm 1 đơn vị.

int a = 5;

a--;

Kết quả a = 4;

Toán tử quan hệ (Relational Operators)

Operator Description Example

== (equal to)

CÓ BẰNG NHAU KHÔNG?

Kiểm tra vế trái có BẰNG vế phải hay không?

Nếu đúng thì trả về true, nếu không trả về false

int a = 3;

int b = 8;

a == b;

// false

!= (not equal to)

CÓ KHÔNG BẰNG NHAU KHÔNG?

Kiểm tra vế trái có BẰNG vế phải hay không?

Nếu đúng thì trả về true, nếu không trả về false

int a = 3;

int b = 8;

a != b;

// true

> (greater than)

CÓ LỚN HƠN KHÔNG?

Kiểm tra vế trái có BẰNG vế phải hay không?

Nếu đúng thì trả về true, nếu không trả về false

int a = 3;

int b = 8;

a > b;

// false

< (less than)

CÓ NHỎ HƠN KHÔNG?

Kiểm tra vế trái có BẰNG vế phải hay không?

Nếu đúng thì trả về true, nếu không trả về false

int a = 3;

int b = 8;

a < b;

// true

>= (greater than or equal to)

CÓ LỚN HƠN HAY BẰNG NHAU KHÔNG?

Kiểm tra vế trái có BẰNG vế phải hay không?

Nếu đúng thì trả về true, nếu không trả về false

int a = 3;

int b = 8;

a >= b;

// false

<= (less than or equal to)

CÓ NHỎ HƠN HAY BẰNG NHAU KHÔNG?

Kiểm tra vế trái có BẰNG vế phải hay không?

Nếu đúng thì trả về true, nếu không trả về false

int a = 3;

int b = 8;

a <= b;

// true

Toán tử dịch bit (Bitwise Operators)

Cho ví dụ sau:

a   = 0011 1100   // 60 dec
b   = 0000 1101   // 13 dec

a&b = 0000 1100   // 12 dec
a|b = 0011 1101   // 61 dec
a^b = 0011 0001   // 49 dec
~a  = 1100 0011   // -61 dec
Operator Description Example
& (bitwise and) Phép AND bit

a & b = 0000 1100 // 12 in decimal

| (bitwise or) Phép OR bit

a | b = 0011 1101 // 61 in decimal

^ (bitwise XOR) Phep XOR bit

a ^ b = 0011 0001 // 49 in decimal

⁓ (bitwise compliment) Phép đảo bit

~a = 1100 0011 // -61 in decimal

<< (left shift) Phép dịch bit sang trái

a << 2 = 1111 0000 // 240 in decimal

>> (right shift) Phép dịch bit sang phải

a >> 2 = 1111 // 15 in decimal

>>> (zero fill right shift) Phép dịch bit sang phải với zero fill operator a >>> 2 = 1111 // 15 in decimal

Toán tử luận lý (Logical Operators)

Operator Description Example

&& (phép and)

PHÉP VÀ

So sánh điều kiện A và B.

Khi cả 2 điều kiện A và B cùng đúng thì trả về true, nếu không trả về false

(A && B) is false

|| (phép or)

PHÉP HOẶC

So sánh điều kiện A và B.

Khi một trong các điều kiện A hoặc B đúng thì trả về true, nếu không trả về false

(A || B) is true

! (phép NOT)

PHÉP PHỦ

Trả về kết quả phủ định (ngược lại) với kết quả so sanh ban đầu !(A && B) is true

Toán tử gán (Assignment Operators)

Operator Description Example
= Gán giá trị của vế phải vào vế trái. c = a + b
+= Tự tăng giá trị vế trái. c += a <=> c = c + a
-= Tự giảm giá trị vế trái. c -= a <=> c = c - a
*= Tự nhân giá trị của vế trái. c *= a <=> c = c * a
/= Tự chia giá trị của vế trái. c /= a <=> c = c / a
%= Tự chia lấy dư giá trị của vế trái. c %= a <=> c = c % a
<<= Tự dịch bit sang trái giá trị của vế trái c <<= a <=> c = c << a
>>= Tự dịch bit sang phải giá trị của vế trái c >>= a <=> c = c >> a
&= Tự thực hiện phép AND bit giá trị của vế trái c &= a <=> c = c & a
^= Tự thực hiện phép XOR bit giá trị của vế trái c ^= a <=> c = c ^ a
|= Tự thực hiện phép OR bit giá trị của vế trái c |= a <=> c = c | a

Toán tử khác (Misc Operators)

Toán tử so sánh điều kiện (hay còn gọi là IF NGẮN)

  • Sử dụng toán tử: ? :
  • Cú pháp

variable x = (expression) ? value if true : value if false;

  • Ví dụ:

String chaoHoi = (tuoi > 18) ? "Xin chào người lớn" : "Xin chào trẻ em";


Độ ưu tiên của các toán tử (Operators Precedence)

Độ ưu tiên được xếp từ cao đến thấp trong bảng sau:

Category Toán tử (Operator)

Thứ tự thực hiện

(Associativity)

Postfix expression++ expression-- Left to right
Unary ++expression --expression +expression -expression ⁓ ! Right to left
Multiplicative * / % Left to right
Additive + - Left to right
Shift << >> >>> Left to right
Relational < > <= >= instanceof Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %= ^= |= <<= >>= >>>= Right to left

Chương trình học


  1. Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
    1. Cài đặt trình soạn thảo code Eclipse IDE #10514
  2. Java căn bản 6
    1. Giới thiệu, đặc điểm, lịch sử của ngôn ngữ lập trình Java #11940
    2. Giới thiệu JVM, JRE, JDK trong Java #11947
    3. Viết chương trình Java đầu tiên (java hello world) #11950
    4. Biến (variables) và kiểu dữ liệu nguyên thủy (primitive data types) trong Java #11961
    5. Nhập liệu qua cửa sổ console (input), In ra màn hình qua cửa sổ console (output) #11970
    6. Toán tử (operators) trong Java #11980
  3. Java căn bản - Bài tập 3
    1. Java Core - Lab 1 - Lập trình căn bản #11988
    2. Java Core - Lab 2 - Câu lệnh điều kiện IF ELSE, SWITCH CASE #11993
    3. Java Core - Lab 3 - Vòng lặp FOR, WHILE, DO WHILE #11996
  4. Java hướng đối tượng - Object Oriented Programming (OOP) 12
    1. Gói (packages) trong Java #11999
    2. Lớp (Class) và Thể hiện (Object) trong Java #12005
    3. Hàm khởi tạo (constructor) trong Java #12010
    4. Kế thừa (Inheritence) và mối quan hệ IS-A trong Java #12022
    5. Thuộc tính truy xuất (Access Modifier) trong Java #12011
    6. Tính bao đóng (Encapsulation) trong Java #12014
    7. Nạp chồng (Overloading) và Ghi đè (Overriding) #12017
    8. Đa hình (Polymorphism) #12025
    9. Lớp trừu tượng (Abstract class) #12028
    10. Giao diện (Interface) / Hợp đồng (Contract) trong Java #12031
    11. So sánh giữa Lớp trừu tượng (Abstract class) và Giao diện (Interface) trong Java #12047
    12. Mối quan hệ liên kết (association) và mối quan hệ HAS-A giữa các Lớp (class) #12039
Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...

Chương trình học


  1. Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
    1. Cài đặt trình soạn thảo code Eclipse IDE #10514
  2. Java căn bản 6
    1. Giới thiệu, đặc điểm, lịch sử của ngôn ngữ lập trình Java #11940
    2. Giới thiệu JVM, JRE, JDK trong Java #11947
    3. Viết chương trình Java đầu tiên (java hello world) #11950
    4. Biến (variables) và kiểu dữ liệu nguyên thủy (primitive data types) trong Java #11961
    5. Nhập liệu qua cửa sổ console (input), In ra màn hình qua cửa sổ console (output) #11970
    6. Toán tử (operators) trong Java #11980
  3. Java căn bản - Bài tập 3
    1. Java Core - Lab 1 - Lập trình căn bản #11988
    2. Java Core - Lab 2 - Câu lệnh điều kiện IF ELSE, SWITCH CASE #11993
    3. Java Core - Lab 3 - Vòng lặp FOR, WHILE, DO WHILE #11996
  4. Java hướng đối tượng - Object Oriented Programming (OOP) 12
    1. Gói (packages) trong Java #11999
    2. Lớp (Class) và Thể hiện (Object) trong Java #12005
    3. Hàm khởi tạo (constructor) trong Java #12010
    4. Kế thừa (Inheritence) và mối quan hệ IS-A trong Java #12022
    5. Thuộc tính truy xuất (Access Modifier) trong Java #12011
    6. Tính bao đóng (Encapsulation) trong Java #12014
    7. Nạp chồng (Overloading) và Ghi đè (Overriding) #12017
    8. Đa hình (Polymorphism) #12025
    9. Lớp trừu tượng (Abstract class) #12028
    10. Giao diện (Interface) / Hợp đồng (Contract) trong Java #12031
    11. So sánh giữa Lớp trừu tượng (Abstract class) và Giao diện (Interface) trong Java #12047
    12. Mối quan hệ liên kết (association) và mối quan hệ HAS-A giữa các Lớp (class) #12039

Bài học trước Bài học tiếp theo