-Các toán tử số học (Arithmetic Operator)
- toán hạng có kiểu số, trả về kết quả kiểu số
+, -, *, /, %
- Các toán tử tăng, giảm (Increment, Decrement Operator)
- các biến kiểu số nguyên và kiểu ký tự
op ++/-- hay ++/-- op : tăng/giảm biến số nguyên một đơn vị, hay cho ký tự Unicode kế tiếp/ kế trước
- Toán tử tăng, giảm đặt trước hay sau biến diễn đạt ý nghĩa khác nhau
Ví dụ 1: int x = 4, y; y = x++; y = ++x; x++;
System.out.println(++x);
Ví dụ 2: char c = ‘a’; c++;
- Toán tử quan hệ hay so sánh (Comparison Operator)
- kết quả có kiểu logic
==, !=, >, <, <=, >=
Ví dụ : 155 > 2.5 ‘B’ < ‘A’
- Toán tử logic (Boolean Operator)
- toán hạng kiểu logic, kết quả kiểu logic
&&, &: và, ||, |: hoặc, !: phủ định, ^: hoặc loại trừ
- Phép &, && cho kết quả true khi 2 toán hạng có giá trị true
- Phép |, || cho kết quả false khi 2 toán hạng có giá trị false
- Phép ^ cho kết quả là true khi 2 toán hạng khác giá trị nhau
- Phép ! cho kết quả là true nếu op có trị false, và ngược lại
Ví dụ 1: 100 > 55 && ‘B’ < ‘A’
Diem >= 5 && Diem < 7
C == ‘Y’ || C == ‘y’
Ví dụ 2: x > 3 && x < ++y
Phép && chỉ cần một toán hạng bên trái trả về false, lập tức kết quả phép toán trả về false, Java không tính đến toán hạng bên phải
- Toán tử gán (Assignment Operator)
gán giá trị của một biểu thức cho một biến
Biến = Biểu _Thức;
Ví dụ : x = 10;
Có thể dùng toán tử gán nhiều lần liên tiếp trong câu lệnh.
Ví dụ: x = y = z = 0;//Cả ba biến x, y, z đều được gán giá trị 0
char c = ‘a’;
c = (char) (c+4);//c+4 là mã unicode của ký tự ‘e’, cho kết quả là ‘e’
nToán tử rút gọn (Shorthand Assignment Operator) như sau :
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=
Ví dụ : int a = 2;
a + = 4; //Tương đương với a = a + 4;
- Phép toán điều kiện ?:
op1 ? op2 : op3
- nếu toán hạng logic op1 có trị true, trả về giá trị op2, ngược lại trả về op3
- Phép nối chuỗi: +
- Ghép nối các chuỗi, nếu có toán hạng nào không phải chuỗi, Java tự động chuyển sang chuỗi
Ví dụ 1: int x, a = 2, b = 5;
x = a>b ? a : b;
System.out.println(a>b ? ”So a lon hon” : ”So b lon hon”);
Ví dụ 2: “Họ và tên của học viên " + soTT + " là : "+ hoTen
" 2 + 2 = "+ (2 + 2)
c. Độ ưu tiên các phép toán
- Thực hiện theo thứ tự từ trên xuống, cùng hàng sẽ có cùng độ ưu tiên
- Quy định thứ tự thực hiện phép toán bằng ( )
( ), [], .
++, --, +op, -op, !, ~ Phải sang trái
new, (type) op Phải sang trái
*, /, %
+, -
<<, >>, >>>
<, >, <=, >=, instanceof
==, !=
&
^
|
&&
||
? : Phải sang trái
=, +=, -=, *=, /=, %=, ^=, &=, |=, <<=, >>=, >>>= Phải sang trái
Ví dụ: s += a += b += c;
Một số Ví dụ:
Về toán tử so sánh
import java.util.Scanner;
public class ToanTuSoSanh {
public static void main(String[] args) {
int firstVariable, secondVariable;
Scanner scanner = new Scanner(System.in);
System.out.println("Nhập vào số thứ nhất: ");
firstVariable = scanner.nextInt();
System.out.println("Nhập vào số thứ hai: ");
secondVariable = scanner.nextInt();
System.out.println("Kết quả của so sánh bằng " + firstVariable + " và " +
secondVariable + " là " + (firstVariable == secondVariable));
System.out.println("Kết quả của so sánh không bằng " + firstVariable + " và " +
secondVariable + " là " + (firstVariable != secondVariable));
System.out.println("Kết quả của so sánh lớn hơn " + firstVariable + " và " +
secondVariable + " là " + (firstVariable > secondVariable));
System.out.println("Kết quả của so sánh lớn hơn hoặc bằng " + firstVariable + " và " +
secondVariable + " là " + (firstVariable >= secondVariable));
System.out.println("Kết quả của so sánh nhỏ hơn " + firstVariable + " và " +
secondVariable + " là " + (firstVariable < secondVariable));
System.out.println("Kết quả của so sánh nhỏ hơn hoặc bằng " + firstVariable + " và " +
secondVariable + " là " + (firstVariable <= secondVariable));
}
}
Về toán tử điều kiện
import java.util.Scanner;
public class ToanTuLuanLyDieuKien {
public static void main(String[] args) {
int firstNumber, secondNumber;
Scanner scanner = new Scanner(System.in);
System.out.println("Nhập vào số thứ nhất: ");
firstNumber = scanner.nextInt();
System.out.println("Nhập vào số thứ hai: ");
secondNumber = scanner.nextInt();
// Sử dụng toán tử luận lý điều kiện
System.out.println("Kết quả của (firstNumber < 10) && (secondNumber < 10) là " +
((firstNumber < 10) && (secondNumber < 10))); // Toán tử AND
System.out.println("Kết quả của (firstNumber < 10) || (secondNumber < 10) là " +
((firstNumber < 10) || (secondNumber < 10))); // Toán tử OR
}
}
Bài tập: Viết chương trình tính thể tích và diện tích bề mặt của một hình cầu với bán kính r nhập vào từ bàn phím (r > 0). Kết quả chỉ cần lấy 2 chữ số thập phân. Công thức tính như sau:
Thể tích = (4/3) * PI * r3.
Diện tích bề mặt = 4 * PI * r2.
Hướng dẫn: Để làm tròn kết quả với 2 chữ số thập phân các bạn sử dụng lớp DecimalFormat theo cú pháp như sau: DecimalFormat decimalFormat = new DecimalFormat("#.##") với phần sau dấu chấm tương ứng với số chữ số thập phân cần lấy (ở đây chúng ta cần lấy 2 chữ số thập phân nên sẽ sử dụng 2 dấu ##).
import java.text.DecimalFormat;
import java.util.Scanner;
public class TinhDienTichVaTheTichHinhCau {
public static final float PI = 3.14f; // khai báo hằng số
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Khai báo lớp DecimalFormat dùng để định dạng số
DecimalFormat decimalFormat = new DecimalFormat("#.##");
System.out.println("Nhập vào bán kính hình cầu (r > 0): ");
float radius = scanner.nextFloat();
// Tính diện tích bề mặt hình cầu
float area = 4 * PI * radius * radius;
System.out.println("Diện tích hình cầu = " + decimalFormat.format(area));
/*
* Tính thể tích hình cầu
* Lưu ý phải ép kiểu kết quả của 4/3 về số thực nếu không sẽ dẫn đến sai kết quả
*/
float vol = (float)4/3 * PI * radius * radius * radius;
System.out.println("Thể tích hình cầu = " + decimalFormat.format(vol));
}
}
Bài tập thực hành:
1. Nhập vào tên của bạn và sau đó hiển thị ra màn hình sử dụng Scanner.
2. Nhập vào thông tin của 1 sinh viên và hiển thị ra màn hình.
Nhập vào thông tin của một sinh viên từ bàn phím (thông tin đó bao gồm họ tên, năm sinh và địa chỉ). Sau đó hiển thị các thông tin vừa nhập ra màn hình Console.
Chú ý: Cẩn thận hiện tượng trôi lệnh trong Java
3. Nhập vào 2 số bất kỳ và thực hiện các phép toán cộng, trừ, nhân, chia, chia lấy dư và so sánh 2 số đó.
Nhập vào 2 số bất kỳ từ bàn phím và thực hiện các yêu cầu sau:
a. Tính tổng, hiệu, tích, thương, chia lấy dư của 2 số đó.
b. Sử dụng các toán tử so sánh đã học để so sánh 2 số đó.
4. Bài toán tính dân số.
Cục điều tra dân số Hoa Kỳ dự báo dân số năm tiếp theo dựa trên giả định sau: Cứ 7 giây là có 1 trẻ em được sinh ra, 13 giây là có 1 người qua đời và 45 giây là có 1 người nhập cư.
Hãy viết chương trình tính toán dân số của Hoa Kỳ trong 5 năm tiếp theo và hiển thị số dân của từng năm. Giả sử số dân hiện tại của Hoa Kỳ là 312,032,486 người và một năm có 365 ngày. Kết quả được làm tròn đến 2 chữ số thập phân.
Hướng dẫn: Để tính dân số của từng năm, chúng ta sẽ áp dụng công thức sau:
Số dân = Số lượng trẻ em sinh ra + Số người nhập cư - Số người qua đời.
5. Tính vận tốc của 1 người đi xe máy, biết rằng vận tốc là không đổi trong suốt quãng đường.
1 người đi xe máy trên quãng đường dài 40km mất 1 giờ, 40 phút và 12 giây. Hãy tính vận tốc của người đó (m/s), biết rằng trong suốt quãng đường vận tốc của người đó là không đổi. Kết quả làm tròn đến 3 chữ số thập phân.
6. Viết chương trình đổi từ độ Celsius sang độ Fahrenheit
Viết chương trình nhập vào độ Celsius bất kỳ từ bàn phím. Sau đó đổi độ này sang độ Fahrenheit và hiển thị kết quả ra màn hình.
Hướng dẫn: Công thức chuyển đổi từ độ Celcius sang độ Fahrenheit như sau:
Độ Fahrenheit = (9/5) * Độ Celsius + 32.
7. Viết chương trình tính tổng các chữ số của 1 số nguyên bất kỳ.
Viết chương trình nhập vào 1 số nguyên n bất kỳ (n > 0) và tính tổng các chữ số của số đó.
Ví dụ: chúng ta nhập vào số 954 thì tổng các chữ số của số này = 9 + 5 + 4 = 18.