×

Kết thúc hàm và trả về giá trị với lệnh return trong C

Trong lập trình C, hàm là một phần rất quan trọng nhằm tổ chức mã lệnh thành các đoạn mã có tính liên kết và tái sử dụng cao. Khi viết một hàm, chúng ta thường cần kết thúc quá trình thực hiện của hàm và trả về một giá trị cho nơi gọi hàm. Điều này được thực hiện bằng lệnh return. Hãy cùng tìm hiểu chi tiết về chức năng của lệnh return trong C, cùng các ví dụ minh hoạ để hiểu rõ hơn.

Cấu trúc của hàm trong C

Trước hết, để hiểu lệnh return, chúng ta cần hiểu cấu trúc cơ bản của một hàm trong ngôn ngữ C. Một hàm thường bao gồm các thành phần sau:

  1. Kiểu trả về (return type): Xác định kiểu dữ liệu của giá trị mà hàm đó sẽ trả về.
  2. Tên hàm: Tên để gọi hàm.
  3. Danh sách tham số: Các biến đầu vào của hàm.
  4. Khối lệnh: Mã lệnh thực thi khi hàm được gọi.

Ví dụ về định nghĩa hàm:

int tinhTong(int a, int b) {
    int ketQua = a + b;
    return ketQua;
}

Trong ví dụ trên:

  • int là kiểu trả về của hàm, có nghĩa rằng hàm tinhTong sẽ trả về một giá trị kiểu int.
  • tinhTong là tên của hàm.
  • int a, int b là danh sách tham số đầu vào.
  • int ketQua = a + b;return ketQua; là các câu lệnh thực thi.

Sử dụng lệnh return

Lệnh return thực hiện hai chức năng chính:

  1. Kết thúc hàm: Khi lệnh return được gọi, hàm đang thực thi sẽ kết thúc ngay lập tức.
  2. Trả về giá trị: Hàm sẽ trả về giá trị đi kèm với lệnh return cho nơi nó được gọi.

Trả về giá trị cụ thể

Khi khai báo một hàm với một kiểu trả về cụ thể, chúng ta phải sử dụng lệnh return để trả về giá trị đúng với kiểu dữ liệu đó. Nếu hàm được khai báo với kiểu int, chúng ta phải trả về một giá trị kiểu int.

Ví dụ:

float tinhTrungBinh(float a, float b) {
    float ketQua = (a + b) / 2;
    return ketQua;
}

Trong ví dụ trên, hàm tinhTrungBinh trả về một giá trị kiểu float.

Hàm không trả về giá trị

Trong một số trường hợp, chúng ta có thể có những hàm không cần trả về giá trị. Để làm điều này trong C, chúng ta sử dụng kiểu trả về void. Khi định nghĩa hàm có kiểu void, không cần và không thể có lệnh return đi kèm với giá trị.

Ví dụ:

void inChuoi(char* chuoi) {
    printf("%s", chuoi);
    // Không cần return giá trị gì cả
}

Lưu ý khi sử dụng lệnh return

  1. return trong hàm có kiểu trả về cụ thể phải đi kèm giá trị: Nếu hàm định nghĩa với kiểu dữ liệu cụ thể (int, float, char,...), thì bắt buộc phải có giá trị đi kèm khi sử dụng return.
  2. return trong hàm không có kiểu trả về không được có giá trị: Nếu hàm được định nghĩa với kiểu void, không thể đi kèm bất kỳ giá trị nào với return.
  3. Vị trí của lệnh return: Khi một lệnh return được thực thi, bất kỳ mã nào sau đó trong hàm sẽ không được thực hiện.

Kết luận

Lệnh return trong C là một công cụ mạnh mẽ và thiết yếu để kết thúc quá trình thực hiện hàm và trả về giá trị cho nơi gọi hàm. Hiểu và sử dụng đúng lệnh return sẽ giúp mã của bạn trở nên rõ ràng, dễ hiểu và đang hiệu quả hơn. Bằng cách nắm vững các quy tắc và lưu ý khi sử dụng lệnh return, bạn có thể tránh được nhiều lỗi phổ biến và trở thành một lập trình viên C thành thạo hơn.

Comments