Menu
CoddyTech

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 != 0 dù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.5

Cá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.5
challenge icon

Thử thách

Người mới

Viế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 chia a cho 2 
  • e (int) sẽ chứa kết quả của phép lấy phần dư khi chia a cho 3
  • f (double) sẽ chứa kết quả của phép lấy phần dư khi chia b cho 1.5
  • g (double) sẽ chứa kết quả của phép lấy phần dư khi chia b cho 3.9
  • h (int) sẽ chứa kết quả của phép lấy phần dư khi chia c cho 10

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);
    }
}
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Java online