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.2Cá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)Thử thách
Người mớiViế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ủaacho2e (i32)sẽ chứa kết quả của phép lấy phần dư củaacho3f (f64)sẽ chứa kết quả của phép lấy phần dư củabcho1.5g (f64)sẽ chứa kết quả của phép lấy phần dư củabcho3.9h (i32)sẽ chứa kết quả của phép lấy phần dư củaccho10
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);
}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
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online