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

Đề tài: Mình hỏi 1 chút về return

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    21

    Mặc định Mình hỏi 1 chút về return

    Mọi người có thể giải thích kĩ hộ mình lệnh return dc ko :-/ Khi mình viết kiểu này
    Code:
     public static Matrix NewtonRaphson(IEquations hamso, IEquations Jacobi, Matrix X0, int count,double error)
    {
    Matrix X, Y, F, J;
                int i, j, temp, lap;
                bool ok = false; //nghiệm thu dc có sai số cho phép
                X = X0; //gán các giá trị khởi tạo cho X
                Y = new Matrix(0, X.Rows, X.Cols);
                for (lap = 0; (lap < count) && (!ok); lap++)
                {
                    F = hamso(X);
                    J = Jacobi(X);
                    //hoán đổi các hàng của J để bảo đảm đường chéo khác 0
                    for (j = 0; j < J.Rows; j++)
                    {
                        if (J[j, j] == 0)
                        {
                            for (i = 0; (i < J.Rows) && !((J[i, j] != 0) && (J[j, i] != 0)); i++)
                                ;
                            if (i < J.Rows)
                            {
                                for (temp = 0; temp < J.Cols; temp++)
                                {
                                    J[j, temp] = J[j, temp] - J[i, temp];
                                    J[i, temp] = J[i, temp] + J[j, temp];
                                    J[j, temp] = J[i, temp] - J[j, temp];
                                    F[j, 0] = F[j, 0] - F[i, 0];
                                    F[i, 0] = F[i, 0] + F[j, 0];
                                    F[j, 0] = F[i, 0] - F[j, 0];
                                }
                            }
                            else
                            {
                                //System.Windows.Forms.MessageBox.Show("Ma trận J có phần tử trên đường chéo chính = 0");
                                throw new ArgumentException("Hệ không giải được");
                                
                            }
                        }
                    }
                    try
                    {
                    Y = SolveLinearEquationbyLU(J, (-1) * F);
                    }
                    catch
                    {
                        throw new ArgumentException("Hệ không giải được");
                        
                    }                                 
                    X = X + Y;
                    ok = Value(Y, error);
                }
                return X;
    }
    Ở những chỗ catch, mình thử thay throw bằng return X để hàm trả luôn giá trị X ở lần lặp trước và thoát ra luôn (định như thế), nhưng vẫn ko dc :( Đành phải vất cái throw vào đấy để xử lý bên ngoài.
    Mọi người có thể chỉ kĩ cho mình về công dụng của return và cách sử dụng của nó trong C# dc ko, hay là có 1 giải pháp nào khác cho việc này cũng dc Chứ nhìn đống try catch trong chương trình chính rối quá.
    Đã được chỉnh sửa lần cuối bởi mechatronic : 13-01-2008 lúc 07:06 AM. Lý do: Thích thì sửa

  2. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    trong catch thêm return; là xong.
    Lưu ý bạn 1 điều, lệnh return có thể xuất hiện ở nhiều nơi nhưng trong 1 lần thực thi chỉ có 1 lệnh return được xử lý. Chẳng hạn trong câu if else thì có thể có return trong if, return trong else nhung trong 1 lần xử lý thì chỉ có 1 return được xử lý và kết thúc hàm.

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    2

    cũng đơn giản thôi
    tại bên hàm của bạn kiểu dữ liệu trả về nên ngtắc khi try .. catch thì fải trả về ít nhất 2 lần
    1 lần là thực hiện đc (trong try { .. } ) && 1 lần nếu bị lỗi khi try (catch {...}) chỉ cần hiểu nhiêu đó là đủ!
    Học - Học nữa - Học mãi - ....
    Rất vui khi được làm quen với các bạn!
    Nick Y!M : bonmat_110187
    Mail : tiennam@thietbikts-vt.com
    Tel : (08) 244 7933 - 0986.613.913
    Bên mình có cung cấp Mp3-Mp4-USB -> Hàng chất lượng, bảo hành 12 tháng (Mp3-Mp4) && USB bảo hành 24 tháng!
    Thành viên của "congdongcviet" khi qua mua hàng sẽ ưu đãi giá!
    Mọi chi tiết tham khảo tại : http://vanthien.com

  4. #4
    Ngày gia nhập
    05 2007
    Bài viết
    21

    thx all Thế là xong
    Sao admin ko thêm chức năng thx vào 4rum nhỉ :-/

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

  1. Kỹ thuật C Tại sao lệnh return mất hiệu lực ???
    Gửi bởi bautroicuabo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 17-03-2012, 12:12 AM
  2. Bài tập C Cách lấy giá trị return ở hàm
    Gửi bởi kenit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 16
    Bài viết cuối: 04-02-2012, 07:03 PM
  3. Lập trình C Câu lệnh return
    Gửi bởi Quangvnu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 09-12-2011, 04:41 PM
  4. 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
  5. Khi nào cần return 0, return 1 trong int main()
    Gửi bởi jojocolumbus trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 22-06-2010, 10:23 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