Loại toán tử

Một phần của tài liệu Học lập trình Java qua ví dụ (Trang 25 - 28)

Java cung cấp các loại toán tử khác nhau như sau:

Toán tử số học

Các toán tử số học được dùng trong các biểu thức toán học. Các toán hạng của các toán tử số học phải ở dạng số. Các toán hạng kiểu boolean không sử dụng được, song các toán hạng ký tự cho phép sử dụng với loại toán tử này.

Toán tử quan hệ

Các toán tử quan hệ kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị boolean, true (đúng) hoặc

false (sai).

Toán tử logic

Các toán tử logic làm việc với các toán hạng boolean.

Toán tử gán

Toán tử gán là một dấu bằng, =, dùng để gán giá trị cho một biến. Có thể gán giá trị cho một hoặc nhiều biến kế tiếp nhau. Nghĩa là, có thể sử dụng một dãy các phép gán.

Toán tử thao tác bit (bitwise)

Một toán tử bitwise cho phép ta thao tác trên từng bit riêng biệt trong các kiểu dữ liệu nguyên thuỷ. Toán tử bitwise dựa trên cơ sở đại số boolean. Nó thực hiện

phép tính trên hai bit có vị trí tương ứng trên hai toán hạng để tạo ra một kết quả mới.

Khi các toán hạng là các số, toán tử „&‟ thực thi hàm AND giữa hai bit, và toán tử „|‟ thực thi hàm OR giữa hai bit. Bảng 2.3 mô tả vấn đề này.

Condition1

(Điều kiện 1) (Điều kiện 2) Condition2 Condition1 & Condition2

Condition1 | Condition2

True True True True

True False False True

False False False False

False False False False

Bảng 2.3: AND và OR

Toán tử dịch bit sang phải không dấu

Mỗi lần một dịch bit xảy ra, toán tử >>> tự động điền bit có thứ tự ưu tiên cao với nội dung trước đó của nó nhưng vẫn giữ dấu của giá trị. Tuy nhiên, thỉnh thoảng dịch chuyển này không thích hợp với những giá trị không phải là số. Trường hợp này thường xảy ra khi làm việc với dữ liệu là đồ họa và các giá trị dựa trên pixel. Trong tình huống đó, một giá trị 0 được dịch chuyển đến bit có thứ tự ưu tiên cao không quan tâm tới giá trị ban đầu của nó. Điều này gọi là dịch chuyển bit không dấu. Vì vậy, một toán tử dịch bit sang phải không dấu, >>>, luôn luôn dịch chuyển 0 đến các bit có thứ tự ưu tiên cao hơn.

Đoạn mã 7:

int val = -3; val = val >>> 20;

Trong đó, val được gán bằng -3. Giá trị này sau đó được dịch chuyển sang phải 20 bits, điền 0 vào 20 bits đó và lờ đi bit dấu. Giá trị sau khi dịch bit là 4095.

Chương 2 Biến và toán tử

27/114 Toán tử này chỉ được dùng cho các biến tham chiếu đối tượng để kiểm tra một đối tượng có thuộc một kiểu xác định hay không. Dạng tổng quát của toán tử instanceof là:

object instanceof type

Ở đây, đối tượng là thể hiện của một lớp, và có kiểu là kiểu của lớp. Nếu đối tượng thuộc về một kiểu xác định hoặc có thể ép kiểu thành kiểu xác định, thì toán tử instanceof trả lại giá trị true, ngược lại thì false. (adsbygoogle = window.adsbygoogle || []).push({});

Đoạn mã 8 minh hoạ cách dùng toán tử này.

Đoạn mã 8:

Scanner input = new Scanner(System.in); Boolean val = input instanceof Scanner; System.out.println(val);

Giá trị được in ra trong đoạn mã trên là true

Toán điều kiện

Toán tử điều kiện là một loại toán tử đặc biệt vì nó gồm ba thành phần cấu thành biểu thức điều kiện. Toán tử này có thể thay thế câu lệnh if-then-else.

Cú pháp :

expression1 ? expression2 : expression3;

Trong đó,

expression1: là biểu thức logic bất kỳ trả về giá trị true hoặc false.

expression2: là biểu thức sẽ được ước lượng khi giá trị của expression 1 là true. expression3: là biểu thức sẽ được ước lượng khi giá trị của expression 1 là false

Các toán tử điều kiện có thể lồng nhau và được minh họa trong đoạn mã 9:

Đoạn mã 9:

int num2 = 10; char op = '*';

System.out.println( (op == '-') ? (num1 - num2) : (op == '+') ? (num1 + num2) : (op == '*') ? (num1 * num2) : "Invalid operator");

Trong đoạn mã 9, điều kiện cuối cùng là true nên kết quả là 50.

Một phần của tài liệu Học lập trình Java qua ví dụ (Trang 25 - 28)