Toán tử chia lấy dư
Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 16 trên 71.
Toán tử modulo (%) trả về số dư sau phép chia. Khi chia một số cho một số khác, toán tử modulo cho bạn biết phần còn lại.
<?php
echo 10 % 3; // Đầu ra: 1
?>Ở đây, 10 chia 3 bằng 3 dư 1. Toán tử modulo trả về phần dư đó.
Một cách dùng phổ biến của phép modulo là kiểm tra xem một số là chẵn hay lẻ. Khi chia cho 2, số dư là 0 nếu số đó chẵn và 1 nếu số đó lẻ (-1 nếu số lẻ đó âm), vì vậy nếu một số chia cho 2 không có số dư thì đó là số chẵn; nếu không thì đó là số lẻ:
<?php
$number = 8;
echo $number % 2; // In ra: 0 (số chẵn)
$number = 7;
echo $number % 2; // In ra: 1 (số lẻ)
?>Cách này chỉ dùng được để kiểm tra số chẵn/lẻ vì khi chia cho 2, số dư luôn là 0 hoặc 1 (hoặc -1 nếu số lẻ âm). Với các số chia khác, khi cả hai số đều dương, số dư có thể nhận bất kỳ giá trị nào từ 0 đến nhỏ hơn số chia 1 đơn vị. Kết quả mang dấu của số bị chia, vì vậy -17 % 5 bằng -2.
Thêm ví dụ giúp bạn hiểu quy luật này:
<?php
echo 15 % 4; // In ra: 3 (15 = 4*3 + 3)
echo 20 % 5; // In ra: 0 (20 = 5*4 + 0)
$dividend = 17;
$divisor = 5;
echo $dividend % $divisor; // In ra: 2 (17 = 5*3 + 2)
?>Thử thách
DễĐọc hai số từ đầu vào: số bị chia và số chia.
Tính và in ra số dư khi chia số thứ nhất cho số thứ hai.
Ví dụ:
Nếu đầu vào là 17 và 5, đầu ra sẽ là 2 (vì 17 ÷ 5 = 3, dư 2).
Tự làm thử
<?php
// Đọc đầu vào
$dividend = intval(fgets(STDIN));
$divisor = intval(fgets(STDIN));
// TODO: Viết code bên dưới để tính số dư
// In kết quả ra
echo $remainder;
?>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 cơ bản
4Toán tử so sánh và logic
Toán tử so sánhBằng nhau và đồng nhấtToán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giản2Biến và kiểu dữ liệu
SốChuỗi và dấu ngoặc képGiá trị BooleanQuy ước đặt tênÔn tập: khởi tạo biếnBiến rỗngNối chuỗiNhận đầu vào từ người dùngChuyển đổi sang kiểu dữ liệu khác5Logic điều kiện
Câu lệnh ifIf và elseToán tử ba ngôiToán tử kết hợp nullCâu lệnh switchÔn tập: đưa ra quyết định3Các toán tử cơ bản
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaPhép gán kết hợpTăng/giảmThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giảnToán tử chuỗiTự luyện tập: Trình biên dịch PHP online