TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] CÁC TOÁN TỬ THƯỜNG DÙNG TRONG JAVA 1. Các toán tử cơ bản (Basic Operators) trong Java. Thường gặp các loại toán tử sau: Toán tử gán, toán tử số học, toán tử một ngôi, toán tử so sánh, toán tử luận lý điều kiện. Toán tử gán. Toán tử Mô tả Ví dụ = Gán giá trị từ các toán hạng bên phải cho toán hạng bên trái. a = 1 sẽ gán giá trị 1 cho a. += Cộng hoặc nối chuỗi toán hạng bên phải vào toán hạng bên trái và gán lại kết quả cho toán hạng bên trái. a += 1 (tương đương với a = a + 1). -= Trừ toán hạng bên phải khỏi toán hạng trái và gán lại kết quả cho toán hạng bên trái. a -=1 (tương đương với a = a - 1). *= Nhân toán hạng bên phải với toán hạng bên trái và gán lại kết quả cho toán hạng bên trái. a *= 2 (tương đương với a = a * 2). /= Chia toán hạng bên phải cho toán hạng bên trái và gán lại kết quả cho toán hạng bên trái. a /= 2 (tương đương với a = a / 2). %= Chia toán hạng bên phải cho toán hạng bên trái và lấy phần dư gán cho toán hạng bên trái. a %= 2 (tương đương với a = a % 2). Toán tử số học. Toán tử Mô tả + Toán tử cộng. - Toán tử trừ. * Toán tử nhân. / Toán tử chia. % Toán tử chia lấy phần dư. Toán tử 1 ngôi. Toán tử Mô tả + Chỉ định giá trị không âm. - Chỉ định giá trị âm. ++ Tăng giá trị của toán hạng đó lên 1 đơn vị. -- Giảm giá trị của toán hạng đó đi 1 đơn vị. ! Phép toán phủ định trên một giá trị luận lý. Nếu một điều kiện đang nhận giá trị là true thì toán tử này sẽ thay đổi giá trị đó thành false và ngược lại.
TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] Chú ý: Đối với toán tử ++ và -- thì trong Java có 2 loại đó là Prefix (tiền tố) và Postfix (hậu tố). Đối với Postfix thì toán tử ++ hoặc -- sẽ nằm đằng sau toán hạng đó. Ví dụ: a++ hoặc a--. Đối với Prefix thì toán tử ++ hoặc -- sẽ đứng đằng trước toán hạng đó. Ví dụ: ++a hoặc --a. Giả sử chúng ta có đoạn chương trình như sau: public static void postFixAndPrefixForArithmetric(){ int firstNum = 5, secondNum = 7; int result = firstNum++ + ++secondNum - 8; System.out.println("First variable = " + firstNum); System.out.println("Second variable = " + secondNum); System.out.println("Third variable = " + result); } Sau khi biên dịch đoạn chương trình thì giá trị của mỗi biến bằng bao nhiêu? Với các toán tử prefĩx (toán tử trước biến) thì biến sẽ được xử lý trước sau đó mới thực hiện các phép tính tiếp theo. Với các toán tử postfix (toán tử sau biến) thì khi qua vòng lặp ms tăng giá trị nó lên. Dựa theo các bước trên, chúng ta giải bài toán trên như sau: Bước thực hiện Kết quả Bước 1: Xử lý Prefix trước: Chúng ta nhận thấy trong đoạn chương trình trên có ++secondVariable là Prefix nên chúng ta xử lý trước. ++secondnNum = 7+ 1 = 8. Bước 2: Xử lý các phép toán còn lại. 5 + 8 - 8 = 5. Bước 3: Gán kết quả vừa có cho toán hạng bên trái. result = 5 Bước 4: Xử lý Postfix. firstNum++ = 5 + 1= 6. Kết quả cuối cùng là: firstVariable = 6, secondVariable = 8, result = 5. Toán tử so sánh. Toán tử Mô tả == (So sánh bằng) So sánh giá trị của toán hạng bên trái và toán hạng bên phải có bằng nhau hay không. Nếu có thì kết quả trả về true, ngược lại trả về false. != (So sánh không bằng) So sánh giá trị của toán hạng bên trái và toán hạng bên phải có không bằng nhau hay không. Nếu có thì kết quả trả về true, ngược lại trả về false. > (So sánh lớn hơn). So sánh giá trị của toán hạng bên trái có lớn hơn toán hạng bên phải hay không. Nếu có thì kết quả trả về true, ngược lại trả về false. >= (So sánh lớn hơn hoặc bằng) So sánh giá trị của toán hạng bên trái có lớn hơn hoặc bằng toán hạng bên phải hay không. Nếu có thì kết quả trả về true, ngược lại trả về false. < (So sánh nhỏ hơn) So sánh giá trị của toán hạng bên trái có nhỏ hơn toán hạng bên phải hay không. Nếu có thì kết quả trả về true, ngược lại trả về false. <= (So sánh nhỏ hơn hoặc bằng) So sánh giá trị của toán hạng bên trái có nhỏ hơn hoặc bằng toán hạng bên phải hay không. Nếu có thì kết quả trả về true, ngược lại trả về false. Toán tử luận lý điều kiện. Toán tử Mô tả && Phép toán luận lý VÀ (AND) trên 2 giá trị, Kết quả trả về true khi cả hai đều đúng. || Phép toán luận lý HOẶC (OR) trên 2 giá trị. Kết quả trả về false khi cả hai đều sai.
TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] ?: Toán tử điều kiện 3 ngôi. Ví dụ toán tử điều kiện 3 ngôi: public static void otherOperator() { methodInfo("otherOperator"); Scanner scanner = new Scanner(System.in); System.out.print("Moi ban nhap tuoi: "); int age = scanner.nextInt(); String type = age >= 18 ? "Adults" : "Child"; System.out.println("=> Your type = " + type); } Độ ưu tiên giữa các toán tử. Thứ tự Toán tử 1 Các toán tử 1 ngôi: +, -, ++, -- 2 Các toán tử số học: *, /, +, - 3 Các toán tử: >, <, >=, <=, ==, != 4 Các toán tử luận lý điều kiện: &&, ||, ?: 5 Các toán tử gán: =, *=, /=, +=, -=