1.Câu lệnh return là gì

Câu lệnh return được sử dụng để trả về một giá trị nào đó hoặc chỉ đơn giản là chuyển điều khiển cho hàm gọi. Đôi khi câu lệnh này cũng được sử dụng như một hành động kết thúc cho một đoạn chương trình đang được thực thi.

Câu lệnh return có thể được sử dụng theo hai cách sau.

  1. return;
  2. return giatri;

2.Câu lệnh return không có giá trị

Dạng đầu tiên của câu lệnh return được sử dụng để kết thúc hàm và chuyển điều khiển cho hàm đang gọi. Không có giá trị nào từ hàm được gọi được trả về khi dạng return này được sử dụng.

Chương trình sau đây minh họa việc sử dụng dạng return không có giá trị:

#include<stdio.h>
void xeploai(int diem)
{
    if(diem >= 9)
    {
        printf("Hoc sinh gioi");
        return;
    }
    else if(diem >= 7 )
    {
        printf("Hoc sinh kha");
        return;
    }
    else
    {
        printf("Hoc sinh trung binh");
        return;
    }
}

int main()
{
    int diem;
    printf("Nhap diem: ");
    scanf("%d", &diem);
    xeploai(diem);
}

Nhập điểm = 9

Nhap diem: 9

Hoc sinh gioi

Nhập điểm = 8

Nhap diem: 8

Hoc sinh kha

Nhập điểm = 5

Nhap diem: 5

Hoc sinh trung binh

Giải thích:

  • Khi nhập điểm bằng 9 sẽ thỏa mãn điều kiện diem >= 9 trong if sau đó thực hiện in ra màn hình “Hoc sinh gioi” và gặp câu lệnh return để trả về kết quả cho hàm xeploai() khi được gọi trong hàm main, return này cũng làm cho các câu lệnh if ở dưới không được thực thi nữa.
  • Tương tự với điểm khi nhập vào bằng 8 và bằng 5 cũng như vậy,chúng đều kiểm tra trong if và nếu thỏa mãn if nào đó thì lập tức gặp return để không thực hiện những câu lệnh if tiếp theo và trả về kết quả cho hàm xeploai() khi được gọi trong hàm main.

3. Câu lệnh return có giá trị

Dạng thứ hai của câu lệnh trả về được sử dụng để trả về các giá trị từ một hàm. Biểu thức trả về sau có thể là bất kỳ lệnh gọi hàm, biến, hằng số, mảng, con trỏ…

Chương trình sau đây tôi sẽ sử dụng câu lệnh return trả về giá trị của phép tính a + b trong hàm tính tổng:

#include<stdio.h>
int TinhTong(int a, int b){
    return a + b;
}

int main()
{
    int a, b;
    printf("Nhap a: ");
    scanf("%d", &a);
    printf("Nhap b: ");
    scanf("%d", &b);
    printf("Ket qua cua ham tinh tong: %d", TinhTong(a,b));
}

 

Nhận xét:

  • Vì a, b là 2 số nguyên nên hàm sẽ có giá trị trả về là int TinhTong
  • Khi ab được đưa vào hàm TinhTong hàm này sẽ trả về kết quả a + b cho hàm TinhTong thông qua câu lệnh return và kết quả đó được hàm TinhTong nhận lấy.
  • Không giống như hàm có kiểu trả về là void, khi gọi hàm tính tổng có kiểu trả về là int (hoặc bất kỳ kiểu trả về khác với void )trong hàm main, ta cần phải sử dụng câu lệnh printf để in ra giá trị của hàm đó.