Menu
CoddyTech

Toán tử điều kiện

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

Toán tử điều kiện (?:) giúp viết câu lệnh if-else gọn gàng trên một dòng:

condition ? expressionIfTrue : expressionIfFalse

Ví dụ:

void main() {
  int age = 20;
  String status = age >= 18 ? 'Adult' : 'Minor';
  
  print(status);
}

Đầu ra: Adult

Nó hoạt động với nhiều kiểu dữ liệu (data type) và phù hợp để thực hiện các phép gán có điều kiện đơn giản.

challenge icon

Thử thách

Dễ

Tạo một chương trình dùng toán tử điều kiện (?:) để xác định xem người chơi có đủ điểm để lên cấp trong trò chơi hay không:

  1. Khai báo một biến số nguyên playerScore có giá trị là 750
  2. Khai báo một biến số nguyên levelUpThreshold có giá trị là 500
  3. Dùng toán tử điều kiện để tạo một thông báo dạng chuỗi, nội dung là một trong hai câu sau:
    • "Level up!" nếu điểm của người chơi lớn hơn hoặc bằng ngưỡng
    • "Keep trying!" nếu điểm của người chơi nhỏ hơn ngưỡng
  4. Lưu thông báo này vào một biến chuỗi có tên message
  5. In điểm của người chơi theo định dạng: Player score: 750
  6. In thông báo
  7. Cập nhật điểm của người chơi thành 450
  8. Dùng lại toán tử điều kiện để cập nhật thông báo dựa trên điểm mới
  9. In điểm đã cập nhật của người chơi theo định dạng: Player score: 450
  10. In thông báo đã cập nhật

Đầu ra của bạn phải khớp chính xác với định dạng mong đợi.

Tự làm thử

void main() {
  // Khai báo các biến (variable) ở đây
  // Thay mỗi số 0 bằng giá trị (value) mà đề bài yêu cầu
  int playerScore = 0;
  int levelUpThreshold = 0;

  // Dùng toán tử điều kiện (conditional operator) để tạo thông báo đầu tiên
  // Thay hai chuỗi rỗng bằng các thông báo mà đề bài yêu cầu
  String message = playerScore >= levelUpThreshold ? "" : "";

  // In ra điểm của người chơi và thông báo
  print("Player score: $playerScore");
  print(message);

  // Cập nhật điểm của người chơi
  // Thay số 0 bằng điểm mới mà đề bài yêu cầu
  playerScore = 0;

  // Dùng toán tử điều kiện để cập nhật thông báo
  message = playerScore >= levelUpThreshold ? "" : "";

  // In ra điểm mới của người chơi và thông báo
  print("Player score: $playerScore");
  print(message);
}
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