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

Đề tài: toán tử ? và : có ý nghĩa gì?

  1. #1
    Ngày gia nhập
    03 2010
    Bài viết
    6

    Mặc định toán tử ? và : có ý nghĩa gì?

    Code:
    int UCLN(int a,int b)
    {
    return (b==0)?a:UCLN(b, a%b)
    }
    cho em hỏi là dau "?" trên nghĩa là gì ạ, có thể thay thế bằng cấu trúc khác không? Em chưa rành về lập trình lắm.

  2. #2
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    Trích dẫn Nguyên bản được gửi bởi phamvantrang Xem bài viết
    Code:
    int UCLN(int a,int b)
    {
    return (b==0)?a:UCLN(b, a%b)
    }
    cho em hỏi là dau "?" trên nghĩa là gì ạ, có thể thay thế bằng cấu trúc khác không? Em chưa rành về lập trình lắm.
    C Code:
    1. Tương đương với
    2.     if(b == 0)
    3.         return a;
    4.     else
    5.         return UCLN(b, a % b);

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    26

    Code:
    return (b==0)?a:UCLN(b, a%b)
    cái này là toán tử điều kiện. Đầu tiên kiển tra (b=0). Nếu đúng sẽ thực hiện trả lại a, còn nếu sai trả lại UCLN(b,a%b). Đứng trước dấu "?" là biểu thức tính toán điều kiện
    Ko bít thì phải học, phải hỏi _ Bít thì nên chia sẻ cho người khác cùng bít
    Chia sẻ là cách học tốt nhất ^_^[j0y_k3y]0_0

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    nó được gọi là ternary operator
    ternary là mượn từ tiếng latinh ( ternarius ) nên google trans ko dịch được

    toán tử này được dùng trong nhiều ngôn ngữ như C, C++, C#, Java, JavaScript,Perl, PHP,Python,Visual Basic ,....
    có lẽ bạn nên tìm hiểu thêm về nó
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  5. #5
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,255

    Các sách tiếng Anh thường gọi là Conditional Operator.
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

  6. #6
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Mặc định toán tử ? và : có ý nghĩa gì?

    Nếu được "nhận xét" về toán tử "?" với đáp án "dịch" sang tiếng "Tây" nguyên gốc của Langman và Yin Yang thì tôi nhất trí cao với cụm "ternary operator " của Langman! Đây mới là nguyên gốc! Còn như Yin Yang nói thì...nó là cái "dùng chung"....

  7. #7
    Ngày gia nhập
    10 2010
    Nơi ở
    MỸ THO
    Bài viết
    86

    mà cho em hỏi giữa chọn đặt điều kiện bằng toán tử trên và đặt điều kiện với câu lệnh if như bình thuờng thì chương trình nào chạy nhanh hơn cái nào tối ưu hơn vậy!
    **********************
    Khôn mà gian ác là khôn độc
    Dạy mà hiền lành là dạy khôn

    **********************
    Phone: 0972 755 699 - 090 5678 164
    Mail: thatbaithilamlai@gmail.com

  8. #8
    Ngày gia nhập
    11 2008
    Bài viết
    38

    Trích dẫn Nguyên bản được gửi bởi alibaba7034 Xem bài viết
    mà cho em hỏi giữa chọn đặt điều kiện bằng toán tử trên và đặt điều kiện với câu lệnh if như bình thuờng thì chương trình nào chạy nhanh hơn cái nào tối ưu hơn vậy!
    Như nhau thôi bạn, dùng ? nhìn có pro hơn chút

  9. #9
    Ngày gia nhập
    11 2008
    Bài viết
    38

    Nói thì ai mà chả nói được, nhưng phải có bằng chứng bạn à.
    Xét về hiệu năng thì:
    return a > b ? a : b;:
    - Sinh mã dài hơn
    - Sử dụng thêm một biến tạm (tốn nhiều bộ nhớ hơn)
    [ebp-0C4h]: chính là biến cục bộ.

  10. #10
    Ngày gia nhập
    06 2010
    Bài viết
    74

    Có lẽ anh langman muốn bạn kirimaru80 đọc cái này.
    http://forums.congdongcviet.com/showthread.php?t=31189

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

  1. Liên thông trung cấp nghề,cao đẳng nghề lên đại học chính quy 2012
    Gửi bởi cafetrungnguyen trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 31-07-2012, 02:03 PM
  2. Trả lời: 0
    Bài viết cuối: 02-08-2011, 03:26 PM
  3. Nhập ký tự đầu tiên của một nghề sẽ xuất ra nghề đó bằng việc sử dụng enum?
    Gửi bởi sasadudu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 05-03-2011, 09:25 PM

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