Toán tử modulo
Thuộc phần Nền tảng cơ bản trong hành trình Java của Coddy. Bài học 16 trên 73.
Toán tử modulo % cho biết số dư của phép chia. Trong Java, toán tử này có cú pháp đơn giản:
result = dividend % divisor;- số bị chia: Số được đem chia.
- số chia: Số dùng để chia số bị chia.
- kết quả: Số dư của phép chia.
Ví dụ:
result = 10 % 3;Ở đây, 10 được chia cho 3. 3 chia vào 10 được 3 lần, dư 1. Vì vậy, result sẽ bằng 1.
Nếu số bị chia nhỏ hơn số chia thì sao? Trong trường hợp đó, số chia chia vào số bị chia được 0 lần, nên số dư chính là số bị chia. Ví dụ, 2 % 3 bằng 2, vì 3 chia vào 2 được 0 lần, dư 2.
Toán tử modulo thường được dùng để kiểm tra một số là chẵn hay lẻ:
- Nếu một số là số chẵn, khi chia số đó cho 2, số dư sẽ bằng 0.
- Nếu một số là số lẻ, khi chia số đó cho 2, số dư sẽ bằng 1 (hoặc -1 nếu số đó âm), vì vậy
number % 2 != 0dùng để kiểm tra số lẻ.
Khi dùng phép modulo với số dấu phẩy động (số double), phép tính hoạt động tương tự như với số nguyên nhưng vẫn giữ độ chính xác thập phân. Ví dụ:
double result = 5.5 % 2.0;
// result có giá trị là 1.5Cách hoạt động như sau: 2.0 chia vào 5.5 được 2 lần (4.0), phần dư là 1.5 (5.5 - 4.0 = 1.5).
Lưu ý: các giá trị double được lưu dưới dạng giá trị gần đúng, vì vậy một số phép tính phần dư in ra kết quả có sai số rất nhỏ. Ví dụ, 5.2 % 2.0 in ra 1.2000000000000002 thay vì 1.2. Đây là hành vi bình thường của số dấu phẩy động, không phải lỗi trong code của bạn.
Một ví dụ khác:
double result = 7.5 % 3.5;
// result bằng 0.5Thử thách
Người mớiViết code khởi tạo ba biến a (int), b (double) và c (int) lần lượt với các giá trị 9, 2.6 và 11.
Sau đó, khởi tạo các biến sau:
d (int)sẽ chứa kết quả của phép lấy phần dư khi chiaacho2e (int)sẽ chứa kết quả của phép lấy phần dư khi chiaacho3f (double)sẽ chứa kết quả của phép lấy phần dư khi chiabcho1.5g (double)sẽ chứa kết quả của phép lấy phần dư khi chiabcho3.9h (int)sẽ chứa kết quả của phép lấy phần dư khi chiaccho10
Kiểm tra kết quả và xem các số bị chia và số chia khác nhau ảnh hưởng đến kết quả như thế nào.
Tự làm thử
public class Main {
public static void main(String[] args) {
// Viết code của bạn bên dưới
// Đừng thay đổi dòng bên dưới
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
System.out.println("e = " + e);
System.out.println("f = " + f);
System.out.println("g = " + g);
System.out.println("h = " + h);
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
4Toán tử phần 1
Toán tử số họcToán tử moduloTăng/giảmTăng/giảm sauPhép rút gọn số họcToán tử so sánhSo sánh chuỗi7Nhập xuất cơ bản
Các phương thức System.outĐịnh dạng đầu raLớp ScannerÔn tập: đến 120Ôn tập: đúng hay sai5Toán tử, phần 2
Toán tử logic, phần 1Toán tử logic, phần 2Ôn tập: logic cơ bảnToán tử logic, phần 3Toán tử logic, phần 411Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: mảng tíchÔn tập: mảng đảo ngượcTự luyện tập: Trình biên dịch Java online