Menu
CoddyTech

Toán tử modulo

Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 16 trên 75.

Toán tử modulo % cho biết số dư của phép chia. Trong Rust, toán tử này dùng cú pháp đơn giản:

let result = dividend % divisor;
  • dividend: Số bị chia.
  • divisor: Số chia.
  • result: Số dư của phép chia.

Ví dụ:

let result = 10 % 3;

Ở đây, 10 được chia cho 3. 3 chia hết vào 10 được ba lần, dư 1. Vì vậy, result sẽ bằng 1.

Thông thường, phép modulo được dùng để kiểm tra một số là chẵn hay lẻ:

  • Nếu một số là số chẵn, chia số đó cho 2 sẽ dư 0.
  • Nếu một số là số lẻ, chia số đó cho 2 sẽ dư 1, hoặc -1 nếu số đó là số âm.

Khi dùng phép chia lấy dư với số thực (f64), phép tính hoạt động tương tự như với số nguyên, và phần dư có thể có phần thập phân. Ví dụ:

let result: f64 = 5.2 % 2.0;
// result xấp xỉ 1.2

Cách hoạt động như sau: 2.0 chia vào 5.2 được hai lần (4.0), phần dư là 1.2 (5.2 - 4.0 = 1.2). f64 không thể lưu chính xác 5.2, nên khi in ra result, bạn sẽ thấy 1.2000000000000002.

Một ví dụ khác:

let result: f64 = 7.8 % 3.5;
// result xấp xỉ 0.8 (in ra 0.7999999999999998)
challenge icon

Thử thách

Người mới

Viết code để khởi tạo ba biến, a (i32), b (f64) và c (i32), 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 (i32) sẽ chứa kết quả của phép lấy phần dư của a cho 2 
  • e (i32) sẽ chứa kết quả của phép lấy phần dư của a cho 3
  • f (f64) sẽ chứa kết quả của phép lấy phần dư của b cho 1.5
  • g (f64) sẽ chứa kết quả của phép lấy phần dư của b cho 3.9
  • h (i32) sẽ chứa kết quả của phép lấy phần dư của c cho 10

Xem kết quả và quan sát cách số bị chia và số chia khác nhau ảnh hưởng đến kết quả.

Tự làm thử

fn main() {
    // Viết code của bạn bên dưới
    
    
    // Đừng thay đổi dòng bên dưới
    println!("a = {}", a);
    println!("b = {}", b);
    println!("c = {}", c);
    println!("d = {}", d);
    println!("e = {}", e);
    println!("f = {}", f);
    println!("g = {}", g);
    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 Kiến thức nền tảng

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