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

Đề tài: Vòng lặp for hoạt động như thế nào?

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

    Mặc định Vòng lặp for hoạt động như thế nào?

    mình tự học C qua sách và qua CDCV. Nhưng đến đoạn vòng lặp này thì có vẻ khó hiểu quá. Đọc lí thuyết thì thấy được tí và chỉ hiểu được một vài cái đơn giản.

    Ai có thể help mình cái vụ vòng lặp này ko ??? giúp mình hiểu rõ nó hơn với.

    Nếu có thể thì kèm theo vài ví dụ về vòng lặp thì càng tốt hơn.

    Thực sự mình đọc nhiều cái bài tập về vòng lặp for này mà vẫn chưa hiểu ra được nhiều lắm nên mong được các bạn giúp đỡ !!!
    Cộng Đồng C Việt dot COM

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,749

    Thứ 1 cần hiểu thế nào là Lặp:
    Có thể hiểu là việc thực hiện lặp đi lặp lại một công việc tương tự nhau gọi là lặp.

    Thứ 2 mới tìm hiểu về for
    Để hiểu hơn về for ta đi xét một vài cú pháp dễ hiểu hơn của các ngôn ngữ khác C trước nhé:

    Ở Pascal, cú pháp for có dạng như sau: (Lấy một cái dễ hiểu thôi nhé)

    Syntax Code:
    1. for i:=1 to n then
    2. Begin
    3. Statements; (Các câu lệnh)
    4. End;

    Bây giờ bạn có thể hiểu cú pháp trên của Pascal đơn giản như sau:

    Syntax Code:
    1. Cho i=1 tới n khi đó
    2. Bắt đầu
    3. Thực hiện làm cái gì đó;
    4. Kết thúc;

    Dễ hiểu hơn nữa bạn có thể hiểu là gán i bằng 1 và i còn nằm trong khoảng [1..n] thì thực hiện làm cái gì đó. (i sẽ chạy từ 1 tới n).

    Để sáng tỏ hơn bây giờ Dreaminess xét tiếp cú pháp for của VB

    Syntax Code:
    1. For i=1 to n step j
    2. Statements
    3. Next i

    Bạn có thể hiểu nó như sau:

    Syntax Code:
    1. Cho i=1 tới n tăng mỗi bước lên j đơn vị (Mặc định j là 1)
    2. Thực hiện làm gì đó
    3. Xét i tiếp theo. (tức là xét i+j)

    Đối với VB và Pascal khá giống nhau, nhưng VB linh hoạt hơn Pascal nhiều. Nhìn vào đó chắc bạn cũng hiểu quy luật của for của VB rồi nhỉ???

    Bây giờ quay lại với cú pháp for của C nhé.
    Syntax Code:
    1. for(Exp1;exp2;exp3)
    2. {
    3.     Statements;
    4. }

    Nào lấy một ví dụ đơn giản xem nhé:
    C Code:
    1. for(i=1;i<=n;i++)
    2. {
    3.     Test=test+i;
    4. }

    Bạn hãy nhìn lại 2 cú pháp for của VB và Pascal bạn chắc cũng có thể hiểu ra chứ nhỉ???

    Ở C cú pháp for dùng 3 biểu thức:
    - Trong đó biểu thức đầu (Exp1) thường là biểu thức gán (Ở ví dụ trên bạn nên hiểu là cho i=1)
    - Biểu thức thứ 2 (Exp2) thường là biểu thức điều kiện (i<=n) (Ở ví dụ trên cũng có thể hiểu đơn giản là: i còn nằm trong khoảng [1..n] thì thực hiện câu lệnh trong vòng for. Ở đây nếu i còn nằm trong khoảng [1..n] thì Test=test+i sẽ được thực hiện)
    - Biểu thức 3(Exp3) thường là biểu thức dành cho việc chạy biến i (i++ có nghĩa là tăng i lên 1 đơn vị, khi nào i>n thì thoát khỏi for)

    Túm lại ở ngôn ngữ nào thì công dụng của for khá giống nhau. Bạn chỉ cần tư duy một tí tẹo là hiểu ngay. Nhớ rằng for là cấu trúc lặp

    Ở C không chỉ có vậy. Mỗi một biểu thức trong ngoặc for còn có thể có vài câu lệnh được cách nhau bằng dấy ',' hoặc một biểu thức không có câu lệnh nào. Nhưng để dễ dàng cho việc xem lại sau này và bảo trì, nâng cấp code... nên có mặt cả 3 biểu thức trong ngoặc for và hạn chế đưa nhiều câu lệnh vào một biểu thức. Về ví dụ của việc mở rộng for bạn tìm bài viết của Pete cách đây không lâu.

    Dreaminess viết ra dưới ý hiểu của mình, nếu có gì sai mong các bạn chiếu cố bổ sung và sửa chữa thêm nhé.

    Chúc thành công.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Uhm không biết có giúp cậu hiểu ra không ?
    Các kiến thức cơ bản về lập trình C

  4. #4
    No Avatar
    SongTuDo Khách

    Nhân tiện đây cho tớ hỏi luôn khi sử dụng vòng lặp :
    ví dụ : for ( i=0;i<5;i++)
    printf ("nhap so :");
    scanf ("%d",&a);
    Khi mình run nó chạy 1 lèo : nhap so :nhap so :nhap so :nhap so : mà ko tiến hành được nhập số lần 1 rồi đợi mình nhập số mới chuyển tiếp câu lệnh sau . Chỉ hộ tớ cái .

  5. #5
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Trích dẫn Nguyên bản được gửi bởi SongTuDo
    Nhân tiện đây cho tớ hỏi luôn khi sử dụng vòng lặp :
    ví dụ : for ( i=0;i<5;i++)
    printf ("nhap so :");
    scanf ("%d",&a);
    Khi mình run nó chạy 1 lèo : nhap so :nhap so :nhap so :nhap so : mà ko tiến hành được nhập số lần 1 rồi đợi mình nhập số mới chuyển tiếp câu lệnh sau . Chỉ hộ tớ cái .
    Cậu chỉ cần thêm cặp ngoặc {} là được vì nếu cậu viết như trên thì câu lệnh printf là câu lệnh trong vòng for còn scanf là câu lệnh ngoài vòng. nếu cậu muốn một nhóm câu lệnh trong vòng for thì phải có thêm cặp ngoặc khối {}.

  6. #6
    No Avatar
    SongTuDo Khách

    Mặc định Vòng lặp for hoạt động như thế nào?

    Thank nhìu , cũng vừa ra thử lại {} , đúng thiệt là ....

  7. #7
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    Tui cũng bàn xa hơn một chút, không phải là quá cao siêu, nhưng cũng không phải là khai báo như thế nào, cú pháp ra sao (rõ ràng là mấy vấn đề vớ vẩn mà đứa nào mới học mới đọc cũng biết)

    Trong VC6, mọi khai báo biến trong khai báo for (là thế nào nhỉ? chính là các khai báo nằm trong () liền sau từ khóa for) đều có tầm vực ngoài vòng vô (là sao nhỉ, xem ví dụ ở dưới)

    Code:
    Ví dụ 1:
    {
       for (int i=0; i<10; ++i) {
          ...
       }
       
       int i = 0; 
       /// lỗi: định nghĩa lại i, tức là biến i đã định nghĩa rồi, ở trong for trên đó
    }
    
    Ví dụ 2
    {
       for (int i=0; i<10; ++i) {
          ...
       }
    
       for (int i=0; i<10; ++i) 
       /// lỗi: định nghĩa lại i, tức là biến i đã định nghĩa rồi, ở trong for trên đó
       {
          ...
       }   
    }
    Ở trong VC.Net thì các khai báo biến như trên chỉ có tầm vực trong for

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

  1. Vòng lặp for lồng nhau, giải thích giúp em cách hoạt động?
    Gửi bởi tucute89 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 11
    Bài viết cuối: 27-06-2013, 02:28 PM
  2. các bạn chỉ dùm vòng lặp cho textbox hoặc label trong c#
    Gửi bởi dophuhao trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 28-04-2013, 08:41 AM
  3. Nguyên lý hoạt động của vòng lặp for. Xin giải thích giúp?
    Gửi bởi vanthanh020489 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 31-03-2010, 12:48 AM
  4. Biến chạy trong vòng lặp hoạt động như thế nào?
    Gửi bởi trungvn222 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 03-04-2009, 08:55 PM
  5. Giải thích hoạt động của các vòng for
    Gửi bởi knownledge trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 26-04-2007, 02:23 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