Menu
CoddyTech

Toán tử modulo

Thuộc phần Kiến thức cơ bản trong hành trình Dart của Coddy. Bài học 18 trên 94.

Toán tử modulo (%) cho ta số dư sau phép chia. Cùng tìm hiểu cách toán tử này hoạt động qua một vài ví dụ đơn giản.

Phép toán modulo cơ bản

void main() {
  int dividend = 10;
  int divisor = 3;
  int remainder = dividend % divisor;
  
  print('Remainder of $dividend ÷ $divisor = $remainder');
}

Đầu ra: Remainder of 10 ÷ 3 = 1

Khi chia 10 cho 3, ta được 3 và dư 1. Toán tử modulo % lấy giá trị phần dư đó.

Kiểm tra số chẵn và số lẻ

Ta có thể xác định một số là chẵn hay lẻ bằng toán tử modulo:

void main() {
  int number = 15;
  int remainder = number % 2;
  
  print('$number % 2 = $remainder');
  
  // Số chẵn có số dư bằng 0 khi chia cho 2
  bool isEven = remainder == 0;
  
  // Dùng trực tiếp giá trị boolean thay vì if/else
  String result = isEven ? '$number is even' : '$number is odd';
  print(result);
}

Đầu ra:

15 % 2 = 1
15 is odd
challenge icon

Thử thách

Dễ

Tạo một chương trình sử dụng toán tử modulo (%) để giải các bài toán sau:

  1. Khai báo một biến số nguyên totalMinutes có giá trị là 197
  2. Tính và lưu số giờ trọn vẹn trong totalMinutes bằng phép chia lấy phần nguyên
  3. Tính và lưu số phút còn lại bằng toán tử modulo
  4. In thời gian theo giờ và phút đúng chính xác theo định dạng sau:
197 minutes is 3 hours and 17 minutes.

Sau đó:

  1. Khai báo một biến số nguyên coins có giá trị là 57
  2. Tính và lưu số đồng 25 xu có thể đổi từ coins
  3. Tính và lưu số đồng xu còn lại bằng toán tử modulo
  4. In kết quả đúng chính xác theo định dạng sau:
57 coins can be divided into 2 quarters and 7 remaining coins.

Tự làm thử

void main() {
  // Khai báo các biến (variable) ở đây
  // Thay từng giá trị giữ chỗ bên dưới bằng giá trị mà bài yêu cầu
  int totalMinutes = 0;

  // Tính số giờ và số phút còn lại
  // Dùng phép chia lấy phần nguyên để tính số giờ và toán tử (operator) chia lấy dư để tính số phút
  int hours = totalMinutes;
  int remainingMinutes = totalMinutes;

  // In ra kết quả thời gian
  print("$totalMinutes minutes is $hours hours and $remainingMinutes minutes.");

  // Tính số đồng 25 xu và số xu còn lại
  int coins = 0;
  int quarters = coins ~/ 1;
  int remainingCoins = coins % 1;

  // In ra kết quả tính số xu
  print("$coins coins can be divided into $quarters quarters and $remainingCoins remaining coins.");
}
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 cơ bản

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