Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: ai biết về return????

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    0

    Mặc định ai biết về return????

    em chưa hiểu về return lắm ,ai có thể giải thích giùm không?
    102:.............................

  2. #2
    Ngày gia nhập
    06 2009
    Bài viết
    60

    một trong những việc mà return thực hiện là trả về giá trị cho hàm và dừng câu lệnh.

    Ví Dụ :
    trả về giá trị cho hàm :

    Code:
    int TinhTong(int a,int b)
    {
           int S = 0;
           S = a + b;
           return S; // trả về giá trị cho hàm
    }
    dừng câu lệnh và thoát khỏi hàm :
    Code:
    void Dung(int n)
    {
    	for ( int i = 0; i < 6; i ++)
    	{
    		if( i == 3 )
    		{
    			return;// dừng câu lệnh thoát khỏi hàm
    		}
    		printf("%d",i);
    	}
    
    }

  3. #3
    Ngày gia nhập
    09 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    3

    trong đoạn code này cái return nó làm những gì vậy các bác ?
    phân tích cho em hiểu vs ? :|
    Code:
    #include <iostream>
    using namespace std;
    #include <conio.h>
     
    class thoigian
    {
    private:
    int ngay;
    int thang;
    int nam;
    static int snthang[12];
    public:
    thoigian(int ngay=1,int thang=1,int nam=2011);
    friend istream& operator>>(istream&,thoigian&);
    friend ostream& operator<<(ostream&,const thoigian&);
     
    int HopLe(void) const;
    int Quy(void) const;
    int SoNgayTrongThangHienTai(void) const;
     
    thoigian HomTruoc(void) const;
    thoigian HomSau(void) const;
    };
    int thoigian::snthang[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    thoigian::thoigian(int ngay/* =1 */,int thang/* =1 */,int nam/* =2011 */)
    {
    this->ngay=ngay;
    this->thang=thang;
    this->nam=nam;
    }
    istream& operator>>(istream& is,thoigian& t)
    {
    do
    {
    cout<<"Nhap ngay: ";
    is>>t.ngay; //demo, so i dont care IO exception 
    cout<<"Nhap thang: ";
    is>>t.thang; //demo, so i dont care IO exception
    }
    while(!t.HopLe());
    return is;
    }
    ostream& operator<<(ostream& os,const thoigian& t)
    {
    return os<<t.ngay<<"/"<<t.thang<<"/"<<t.nam;
    }
    int thoigian::HopLe(void) const
    {
    snthang[1]=28+ ((nam % 4 == 0 && nam % 100 != 0)|| nam % 400 == 0);
    return (ngay>0&&thang>0&&thang<13&&ngay<=snthang[thang-1]);
    }
    int thoigian::Quy(void) const
    {
    return thang/3+(thang%3!=0);
    }
    int thoigian::SoNgayTrongThangHienTai(void) const
    {
    return snthang[thang-1];
    }
    thoigian thoigian::HomTruoc(void) const
    {
    thoigian homtruoc(*this);
     
    homtruoc.ngay--;
    if (homtruoc.ngay<1)
    {
    homtruoc.thang--;
    if (homtruoc.thang<1)
    {
    homtruoc.thang=12;
    homtruoc.nam--;
    }
    homtruoc.ngay=snthang[homtruoc.thang-1];
    }
    return homtruoc;
    }
    thoigian thoigian::HomSau(void) const
    {
    thoigian homsau(*this);
    homsau.ngay++;
    if (homsau.ngay>snthang[homsau.thang-1])
    {
    homsau.ngay=1;
    homsau.thang++;
    if (homsau.thang>12)
    {
    homsau.thang=1;
    homsau.nam++;
    }
    }
    return homsau;
    }
     
     
     
    void main(void)
    {
    thoigian x;
    cin>>x;
    cout<<"Thuoc quy "<<x.Quy()<<endl;
    cout<<"Hom truoc "<<x.HomTruoc()<<endl;
    cout<<"Hom sau "<<x.HomSau()<<endl;
     
     
    getch();
    }

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Tử return trong tiếng Anh có nghĩa là "trở về" hoặc "trả về". C/C++ sử dụng cả hai nghĩa này.

    Một hàm có khoảng code phạm vi của nó. Trong ngôn ngữ C/C++, khoảng code của hàm là cặp móc cong {}

    Trong phạm vi của hàm, lệnh return là lệnh bảo nhảy đến cái móc ngoặc đóng hàm (ra khỏi hàm) và làm thủ tục "trở về" hoặc "trả về"

    1. Nếu lệnh return đi một mình, không có gì đi theo nó (return; ) thì dùng thủ tục "trở về". Tức là không làm gì cả ngoài việc trở về chỗ code gọi hàm. Trong trường hợp này, hàm phải được khai báo là void.

    Nói cách khác, nếu hàm khai báo:
    void Ham1();
    Thì bên trong hàm, tất cả các lệnh return phải có dạng:
    return;

    2. Nếu lệnh return có một trị đi kèm ở sau (vd return triNaoDo; ) thì dùng thủ tục trả về. Tức là trở về chỗ code gọi hàm và đưa cái trị đi kèm ấy cho code gọi hàm đọc. Trong trường hợp này, hàm phải được khai báo có thể loại cùng với thể loại của trị mà nó muốn trả về.

    Nói cách khác, nếu hàm khai báo:
    int Ham2();
    Thì bên trong hàm, tất cả các lệnh return phải có dạng:
    return (một trị hay biến thuộc loại int, hoặc một con toán cho ra kết quả int);

    tb. Thực ra thủ tục trở/trả hàm về code gọi hàm còn bao gồm phần giải tỏa stack. Nhưng ở đây bạn đã hỏi câu này thì trình độ bạn không đủ để hiểu thủ tục giải tỏa stack. Về sau này, khi đã có khái niệm khá rồi thì nên tìm hiểu thêm.

    @DungDemo:
    Đoạn code bạn đưa ra do một cao thủ nào đó viết mà lười chú thích (comment) nên tốn rất nhiều công để đọc. Lúc bạn chép lại còn bị mất cách trình bày. Cái này chỉ có tác giả mới có thì giờ giải thích.
    Vả lại lệnh return bạn chưa nắm vững thì mó vào cái code HĐT này chỉ thêm rối óc.

Các đề tài tương tự

  1. Bài tập C Cách khai báo biến và cách sử dụng hàm return trong C?
    Gửi bởi TkLiv trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 11-11-2012, 08:18 PM
  2. Lỗi chương trình không nhận biến(không return được biến từ public sang main)
    Gửi bởi nang trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 02-10-2011, 06:04 PM
  3. hàm bắt buộc nhập số, nếu là số thì return 1, còn ký tự thì return 0;
    Gửi bởi khacphuctran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 11-03-2011, 04:39 PM
  4. Copy return value sang một biến khác.
    Gửi bởi noob trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 06-06-2010, 12:04 PM
  5. Cần biết chi tiết về hàm return
    Gửi bởi cute_pro_xxx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 12-12-2009, 08:00 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn