Menu
CoddyTech

Giá trị trả về

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

Đến giờ, các hàm của chúng ta đã in kết quả trực tiếp. Nhưng thường thì bạn muốn một hàm tính toán giá trị rồi gửi giá trị đó lại để bạn có thể dùng ở nơi khác trong code. Đây là lúc giá trị trả về xuất hiện.

Dùng hàm return() để trả về một giá trị từ hàm của bạn:

add <- function(a, b) {
  return(a + b)
}

result <- add(5, 3)
print(result)

Đầu ra:

[1] 8

Thay vì in ra bên trong hàm, ta trả về tổng. Sau đó, bạn có thể lưu giá trị trả về vào một biến, dùng trong phép tính hoặc truyền cho các hàm khác.

Điều này giúp các hàm linh hoạt hơn nhiều:

double <- function(x) {
  return(x * 2)
}

print(double(5) + double(3))

Đầu ra:

[1] 16

Trong R, nếu bạn không dùng return(), hàm sẽ tự động trả về biểu thức được đánh giá cuối cùng. Tuy nhiên, dùng return() một cách tường minh giúp đoạn code của bạn rõ ràng hơn, đặc biệt hữu ích khi bạn muốn thoát khỏi hàm sớm.

challenge icon

Thử thách

Dễ

Tạo một hàm (function) có tên calculate_power, nhận hai đối số: base và exponent. Hàm này sẽ return kết quả của phép tính lấy base lũy thừa exponent (dùng toán tử ^).

Đọc hai số từ đầu vào, chuyển chúng thành giá trị số rồi gọi hàm. Lưu giá trị trả về vào một biến có tên result, sau đó in ra result.

Ví dụ, nếu đầu vào là 2 và 3, đầu ra sẽ là:

[1] 8

Nếu đầu vào là 5 và 2, đầu ra sẽ là:

[1] 25

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))

# TODO: Tạo hàm (function) tên calculate_power nhận base và exponent
# và trả về base lũy thừa exponent bằng toán tử ^


# TODO: Gọi hàm với các giá trị đầu vào và lưu kết quả vào 'result'


# In kết quả ra
print(result)
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 R online