Search…

Khai Báo và Định Nghĩa Hàm - Từ Khóa return

20/09/20203 min read
Tìm hiểu về cách khai báo, định nghĩa hàm và sử dụng hàm trong C++.

Khai báo hàm

Thông thường hàm thực hiện việc tính toán trên các tham số và cho lại giá trị kết quả, hoặc chỉ thực hiện 1 chức năng nào đó mà không cần trả lại kết quả. Kiểu giá trị trả về này được gọi là kiểu của hàm.

Hàm thường được khai báo ở đầu chương trình, cách để khai báo 1 hàm như sau:

<kiểu của hàm> <tên hàm>(danh sách tham số);

Trong đó:

  • Kiểu của hàm: kiểu dữ liệu mà hàm trả về. Nếu không có giá trị trả về thì kiểu của hàm là void.
  • Tên hàm: tên của hàm, do người lập trình đặt. Tên hàm không được chứa ký tự đặt biệt, không được bắt đầu bằng số.
  • Danh sách tham số: danh sách các tham số dùng như các biến cục bộ. Nếu có nhiều tham số, thì chúng sẽ được phân tách theo các dấu phẩy.

Ví dụ

int test(int);      // Hàm test có tham số kiểu int và kiểu hàm là int
int rand();         // Không tham số, kiểu hàm (giá trị trả lại) là int
void write(float);  // Hàm không trả lại giá trị (kiểu void).

Định nghĩa hàm

Cấu trúc 1 hàm bất kỳ được bố trí cũng giống như hàm main(), cụ thể:

<kiểu hàm> <tên hàm>(danh sách tham số)
{
      dãy lệnh của hàm;
      return (biểu thức trả về); // Có thể nằm đâu đó trong dãy lệnh.
}

Trong đó return là để truyền dữ liệu cho nơi gọi hàm. Câu lệnh return bắt buộc là phải có đối với hàm có giá trị trả về. Và có thể có hoặc không  đối với hàm không có giá trị trả về (có kiểu trả về là void).

Đối với hàm có giá trị trả về thì kèm theo sau return là 1 biểu thức. Kiểu giá trị của biểu thức này chính là kiểu của hàm. Tuỳ theo mục đích của hàm mà lập trình viên có thể đặt return bất cứ đâu trong dấu {} ở trên.

Khi gặp return chương trình tức thoát khỏi hàm và trả lại giá trị biểu thức sau return. Có thể có nhiều câu lệnh return trong hàm.

Ví dụ

int sum(int a, int b)
{
      return (a + b);
}

Ví dụ trên định nghĩa hàm  tính tổng 2 số nguyên (kiểu int), hàm này có 2 tham số truyền vào (số nguyên a và số nguyên b) và giá trị trả về là số nguyên a + b.

Ví dụ

int getMax(int a, int b)
{
      if(a > b) return a;
      else return b;
}

Ví dụ trên định nghĩa hàm tìm số lớn nhất từ 2 tham số truyền vào ab. Nếu a lớn hơn b thì trả về giá trị là a (return a), ngược lại sẽ trả về giá trị b (return b).

1 ví dụ về hàm không có giá trị trả về:

void printNumber(int a)
{
      std::cout << a;
}

Hàm trên thực hiện công việc in 1 số nguyên (được truyền vào) ra màn hình console. Không có kiểu trả về nên không cần return.

Lưu ý: danh sách tham số trong khai báo hàm có thể có hoặc không tên của biến, thông thường chỉ cần khai báo kiểu dữ liệu của tham số chứ không cần khai báo tên của biến. Trong khi trong định nghĩa hàm thì phải có đầy đủ.

Ví dụ

//Khai báo hàm
int sum(int, int); //không cần tên biến
int sum(int a, int b); //có tên biến

//Định nghĩa hàm
int sum(int a, int b)  // có tên biến
{
      return (a + b);
}

Giải thích:

  • Cuối khai báo hàm phải có dấu chấm phẩy ;, trong khi cuối dòng đầu tiên của định nghĩa hàm không có dấu chấm phẩy.
  • Hàm có thể không có tham số (danh sách tham số rỗng), tuy nhiên cặp dấu ngoặc sau tên hàm vẫn phải được viết.
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024