post-image

Các toán tử (phép toán)

Biến, kiểu dữ liệu và toán tử

Có các toán tử cơ bản sau:

  • Toán tử gán (assignment)
  • Toán tử số học (arithmetic)
  • Toán tử so sánh (comparison)
  • Toán tử logic

Phép gán

Phép gán là cách gắn một giá trị cho một biến hoặc thay đổi giá trị của một biến. Lệnh gán trong Java có công thức:

biến = biểu thức;

Trong đó, dấu bằng (=) được gọi là dấu gán hay toán tử gán, biểu thức ở vế phải dấu gán được tính rồi lấy kết quả gán cho biến nằm ở vế trái. Biểu thức tại vế phải có thể là một giá trị trực tiếp, một biến, hoặc một biểu thức phức tạp.

Các phép toán số học

Java hỗ trợ năm phép toán số học sau: + (cộng), – (trừ), * (nhân), / (chia), % (modulo – lấy phần dư của phép chia). Các phép toán này chỉ áp dụng được cho các biến kiểu cơ bản như int, long và không áp dụng được cho các kiểu tham chiếu.

Phép chia được thực hiện cho hai giá trị kiểu nguyên sẽ cho kết quả là thương nguyên. Ví dụ biểu thức 4 / 3 cho kết quả bằng 1, còn 3 / 5 cho kết quả bằng 0.

Một số phép gán kèm theo biểu thức xuất hiện nhiều lần trong một chương trình, vì vậy Java cho phép viết các phép gán biểu thức đó một cách ngắn ngọn hơn, sử dụng các phép gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=).

Cách sử dụng phép gán phức hợp += như sau:

biến += biểu thức; tương đương biến = biến + biểu thức;

Ví dụ:

apples += 2; 

tương đương:

 apples = apples + 2;

Các phép gán phức hợp khác được sử dụng tương tự.

Java còn cung cấp các phép toán ++ (hay –) để tăng (giảm) giá trị của biến lên một đơn vị.

Ví dụ:

apples++ 

hay

++apple 

có tác dụng tăng apples thêm 1 đơn vị.

Ví dụ:

apples--

hay

--apple

có tác dụng giảm apples đi 1 đơn vị.

Khác biệt giữa việc viết phép tăng/giảm ở trước biến (tăng/giảm trước) và viết phép tăng/giảm ở sau biến (tăng/giảm sau) là thời điểm thực hiện phép tăng/giảm, thể hiện ở giá trị của biểu thức. Phép tăng/giảm trước được thực hiện trước khi biểu thức được tính giá trị, còn phép tăng/giảm sau được thực hiện sau khi biểu thức được tính giá trị.

Ví dụ, nếu apples vốn có giá trị 1 thì các biểu thức ++apples hay apples++ đều có hiệu ứng là apples được tăng từ 1 lên 2. Tuy nhiên, ++apples là biểu thức có giá trị bằng 2 (tăng apples trước tính giá trị), trong khi apples++ là biểu thức có giá trị bằng 1 (tăng apples sau khi tính giá trị biểu thức). Nếu ta chỉ quan tâm đến hiệu ứng tăng hay giảm của các phép ++ hay — thì việc phép toán được đặt trước hay đặt sau không quan trọng. Đó cũng là cách dùng phổ biến nhất của các phép toán này.

Phép toán so sánh

Các phép toán so sánh được sử dụng để so sánh giá trị hai biểu thức. Các phép toán này cho kết quả kiểu boolean bằng true nếu đúng và false nếu sai.

Ví dụ:

boolean enoughApples = (totalApples > 10);

Các phép toán so sánh trong Java được liệt kê trong bảng sau:

Cần lưu ý rằng mặc dù tất cả các phép toán này đều dùng được cho các kiểu dữ liệu cơ bản, chỉ có == và != là dùng được cho kiểu tham chiếu. Tuy nhiên, hai phép toán này cũng không có ý nghĩa so sánh giá trị của các đối tượng.

Các phép toán logic dành cho các toán hạng là các biểu thức quan hệ hoặc các giá trị boolean. Kết quả của biểu thức logic là giá trị boolean.

Ví dụ:

bool enoughApples = (apples > 3) &amp;&amp; (apples < 10);

có kết quả là biến enoughApples nhận giá trị là câu trả lời của câu hỏi “biến apples có giá trị lớn hơn 3 và nhỏ hơn 10 hay không?”.

Độ ưu tiên của các toán tử

Mức độ ưu tiên của một số phép toán thường gặp có thứ tự của chúng như sau:

  • Các toán tử đơn, +, -, !, ++ và — có độ ưu tiên cao nhất.
  • Tiếp theo là các phép toán đôi *, / và %.
  • Tiếp theo là các phép toán đôi +, -.
  • Cuối cùng là các phép toán so sánh <, >, <=, >=.
Ví dụ: 3 + 4 < 2 + 6 cho kết quả true.

Có thể dùng các cặp ngoặc ( ) để định rõ thứ tự ưu tiên trong biểu thức.

Ví dụ: 2 * (1 + 3) cho kết quả bằng 8.

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Tags:
, ,

Leave a Reply

Your email address will not be published. Required fields are marked *