PDA

View Full Version : vòng lặp for trong C ??? help !!



monghoado
25-11-2006, 10:48
mình tự học C qua sách. 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 đỡ !!!

totillas
25-11-2006, 11:49
Thôi dừng đọc nữa cho mất công.

mo dung phuc
25-11-2006, 12:33
for (int i=0; i<100; i++)
{
//làm gì thì làm
}

<-- cho i chạy từ 0 đến 100, mỗi lần lặp làm gì thì làm
:D
đại khái vậy

monghoado
25-11-2006, 12:53
những cái đó thì dễ hiểu thôi. Nhưng mình thấy một số nhiều bài tập thấy sử dụng vòng lặp for nhưng lại có rất nhiều kiến thức ko liên quan. Nó viết ít quá mà bài tập cũng khó hiểu nữa :(

minhquan1712
25-11-2006, 22:02
hix. Trước khi học C bạn fải wa pascal trước chứ. Lúc đó mới dễ hiểu trong C.

monghoado
26-11-2006, 10:37
Có ai có thê help mình ko ?

langtu19987
26-11-2006, 22:25
mình cho bạn đoạn mã này ,nếu k được thi mình cho đoạn khác:
for(i=3;j<10;i++)
{
if(i==4)
i+=5;
for(j=4;j>0;j--)
{
cout<<j*i<<" ";
}
cout<<endl;
}
Thử chạy đi nge bạn,có j mong các Bác chỉ bảo thêm

totillas
27-11-2006, 16:53
Lặp là điều khiển cơ bản trong các ngôn ngữ lập trình. Lặp không có gì phức tạp, khó hiểu cả.

Do vậy:
- Nếu bạn là sinh viên IT -> tự học lấy.
- Không liên quan tới IT -> thôi đừng đọc nữa cho mất công. Ai có việc của người đó.

rilwis
27-11-2006, 17:43
Bạn thử nêu xem bạn đang thắc mắc, khó hiểu ở phần nào thì mọi người mới giúp đỡ cho bạn được. Chẳng lẽ bạn bảo mọi người giảng cho bạn từng ly từng tý về những điều cơ bản này được hay sao?

monghoado
27-11-2006, 22:04
xin lỗi bạn. mình ko có í đó. Nhưng nó cũng nhiều quá thể nên mình ko biết nêu ra cái nào đây :(

Nếu các bạn có bài post khá chi tiết về cái vòng lặp này thì post lên cho mình xem với. Hoặc có í gì hay trong lúc học về cái vòng lặp này thì xin được chỉ giáo.

mình xin cám ơn !!!

Than Dieu
27-11-2006, 22:35
Hỏi mà không biết mình muốn hỏi gì thì Vua lập trình cũng phải bó tay.

Thực ra for,while, goto, do while là phần dễ khi học C rồi.

Cố gắng lên còn nhiều thứ khó hơn cái đó nhiều lắm. Khó nhất là phần cấp phát động tư duy kìa. kha kha

rilwis
28-11-2006, 19:46
Vậy mình trình bày lệnh while trước nhé:

Lệnh while có cú pháp như sau:

while (điều kiện) {
các câu lệnh;
}

trong đó điều kiện là 1 biểu thức (bạn chú ý, biểu thức chứ không phải biểu thức logic nhé, đây là 1 kiểu điều kiện tổng quát). Giá trị của biểu thức này sẽ được tính và nếu nó bằng 0 hoặc NULL hoặc false thì điều kiện đó coi như sai, và các câu lệnh trong vòng lặp sẽ không được thực hiện. Còn ngược lại, nếu giá trị của biểu thức khác 0, khác NULL và khác False thì điều kiện được coi là đúng và khi đó các câu lệnh trong vòng lặp sẽ được thực hiện.

Vòng lặp sẽ lần lượt thực hiện hết tất cả các câu lệnh trong thân (trong dấu ngoặc nhọn) cho đến khi điều kiện không còn thỏa mãn nữa. Bạn có thể thấy là hầu hết trong thân vòng lặp, các câu lệnh có phần nào đó tác động lên điều kiện của nó, và làm thay đổi nó. Đến khi thay đổi này làm cho điều kiện không còn đúng nữa thì vòng lặp bị ngừng lại.

Nếu trong thân vòng lặp khi bạn muốn ngừng vòng lặp 1 cách đột ngột mà không cần phải kiểm tra điều kiện thì bạn dùng lệnh break, cú pháp sẽ như sau:

while (điều kiện) {
các câu lệnh;
break;
các câu lệnh;
}

Còn trong trường hợp đang lặp mà bạn muốn nhảy sang lần lặp thứ 2 và bỏ qua những câu lệnh phía dưới thì bạn dùng câu lệnh continue. Cú pháp của nó sẽ như sau:

while (điều kiện) {
câu lệnh;
continue;
câu lệnh không được thực hiện;
}

Thường thì các câu lệnh break, continue thường được gắn liền với các điều kiện cụ thẻ nào đó. Cái này bạn nên xem thêm chi tiết về 2 lệnh này.

Chú ý nữa là trong vòng lặp , nếu số lượng câu lệnh chỉ có 1 thì bạn có thể bỏ dấu ngoặc nhọn đi mà không ảnh hưởng đến chương trình. Tất nhiên nếu bạn giữ lại cũng không sao cả. Và thực tế là nhiều lập trình viên đã giữ lại nó để chương trình dễ nhìn hơn và có 1 phong cách thống nhất.

Các câu lệnh còn lại, bạn cũng tự tìm hiểu như vậy. Nếu có điều kì thắc mắc hãy gửi câu hỏi lên.

Chúc bạn thành công.

mapleleaf
29-11-2006, 00:16
Khó nhất là phần cấp phát động tư duy kìa. kha kha

La gì vậy?:confused: :confused: :confused:

khoabeo108
29-11-2006, 00:47
xin lỗi bạn. mình ko có í đó. Nhưng nó cũng nhiều quá thể nên mình ko biết nêu ra cái nào đây :(

Nếu các bạn có bài post khá chi tiết về cái vòng lặp này thì post lên cho mình xem với. Hoặc có í gì hay trong lúc học về cái vòng lặp này thì xin được chỉ giáo.

mình xin cám ơn !!!

Nói ngắn gọn thế này nha bạn: Mọi người cho dù có nhiệt tình giúp đỡ bạn, thì khi post lên cũng chỉ là post các đoạn code thôi, vậy thì khác gì với việc bạn đọc sách đâu.
(nói vậy bạn đừng buồn)

totillas
29-11-2006, 10:11
Những cái đơn giản thế này thì tự học đi. Đơn giản thế này mà không hiểu được thì sau này làm thế nào?

Bầy giờ mọi người giải thích cái đơn giản này (sau rất nhiều thời gian) bạn có thể hiểu. Nhưng sau này những cái khác thì thế nào? chẳng còn cái nào đơn giản hơn lặp đây (ah có phép gán).

mo dung phuc
29-11-2006, 18:37
công nhận chả hiểu hỏi gì cả, vì chả thấy có gì đáng phải hỏi ở phần này :(
các statement của 1 ngôn ngữ học rất đơn giản mà

mapleleaf
30-11-2006, 02:47
Những cái đơn giản thế này thì tự học đi. Đơn giản thế này mà không hiểu được thì sau này làm thế nào?

Bầy giờ mọi người giải thích cái đơn giản này (sau rất nhiều thời gian) bạn có thể hiểu. Nhưng sau này những cái khác thì thế nào? chẳng còn cái nào đơn giản hơn lặp đây (ah có phép gán).

Lặp là điều khiển cơ bản trong các ngôn ngữ lập trình. Lặp không có gì phức tạp, khó hiểu cả.

Do vậy:
- Nếu bạn là sinh viên IT -> tự học lấy.
- Không liên quan tới IT -> thôi đừng đọc nữa cho mất công. Ai có việc của người đó.


Bình tĩnh nào. Đôi khi chỉ bị kẹt 1 chút, khơi thông ra được là lại chảy như nước máy đấy chứ.:P

Có những chuyện mình thấy bình thường nhưng người khác không thấy vậy. Ráng giúp bạn monghoado hiểu rõ thì tốt hơn là làm giảm tự tin của bạn đó.

Nói với monghoado: nhờ ai đó giỏi về C ngồi cạnh giải thích 1 lúc là hiểu thôi. Lần sau hỏi cụ thể hơn thì chắc mọi người giúp được tốt hơn.
Nói với monghoado: Bạn là nam hay nữ :glare:

Shinichi_haha
07-12-2006, 20:20
Cậu có thể tham khảo chỉ dẫn tại đây
_http://forums.congdongcviet.com/showthread.php?t=409&page=3

WILL_CHAN
11-12-2006, 08:10
Vòng For, While thì công nhận là rất đơn giản nhưng đối với newbie chưa hề biết gì về lập trình thì cũng là cả 1 vấn đề chứ !
Tôi nghĩ là bạn không hiểu code chạy làm sao đúng không? Bạn cứ post code và BT mình sẽ giải thích cho hoặc if you dont mind cho mình nick yahoo, mình sẽ giải thích từng đoạn code cho bạn hiểu ! lúc đầu thì có lẽ hơi vất vả nhưng sau này bạn quen rồi thì bạn sẽ cảm thấy dễ dàng thôi ^^ good luck

monghoado
16-12-2006, 12:31
của mình là monghoado@yahoo.com .
Rất mong đc bạn giúp đỡ :)

juaria
15-02-2007, 20:39
Theo mình, học C không cần thiết phải biết pascan..như mình nè, chưa hề biết lập trình...tự nhiên nhảy zo C...mí tuần là ok.Mình học C rồi nhìn wa pascan thấy dễ hỉu lắm...
Còn về vòng lập for
For ( giá trị;điều kiện;yêu cậu lập) <-- cấu trúc
Vd: for(i=1;i<=n;i--)
Nếu bài khó thì có thể sài nhiều vòng lập, nhưng nhìn chung bạn cứ căn theo cấu trúc đó, C và lập trình chủ yếu bắt người học hơi có logic tí xiu (theo mình là vậy).
Nếu
for (..;...;...)
for (..;...;...)
<-- Đây là lập //.
Nếu
for(...;...;...)
{
for(...;...;...)
<-- Đây là lập trong lập, tức 1 vòng for lập 1 cái gì đó, xong lại có 1 vòng khác lập lại cái đó. ^^
Đây là những điều cơ bản hy vọng nó giúp được bạn .
Thân !

juaria
15-02-2007, 20:45
Lặp là điều khiển cơ bản trong các ngôn ngữ lập trình. Lặp không có gì phức tạp, khó hiểu cả.

Do vậy:
- Nếu bạn là sinh viên IT -> tự học lấy.
- Không liên quan tới IT -> thôi đừng đọc nữa cho mất công. Ai có việc của người đó.

Nói như bạn nì thì sinh viên AI mới học được lập trình, hiện giờ mình mới học lớp 11, mình cũng đang học lập trình, giáo trình của mình là trên đại học đem xuống, mình tuy theo hơi mệt nhưng vẫn hỉu, và bài làm giải vẫn được...đương nhiên có bài mình bi vì nhìn cho cùng mình mới bước vào C có mí buổi, trước chưa hề có khái niệm lập trình. Ko phải mình khoe nhưng tự nhiên đọc xong dòng này mình có ác cảm với dân IT....nhất là với bạn ....thời giờ tụi mình gọi là chãnh ý, còn mí đứa con trai trong lớp mình thì gọi là láo ý.

niuton_luandon
23-02-2007, 17:29
toi truoc day cung nhu ban thoi. cach hieu don gian nhat la theo vong for nay
for(int i;i<100,i++)
{
cout<<"chao ban";
}
moi lan i tang len thi se xuat ra "chao ban 1 lan"
vay la co 100 chu "chao ban"

caibang
23-02-2007, 20:10
thôi học network đi bạn , k0 có vòng lặp gì gì đó đâu :D

daoducthien
13-03-2007, 20:44
Vòng lặp trong C là một cách để chúng ta làm lại một việc gì đó một cách có điều kiện !! có 3 loại vòng lặp:

1. For() // kiểm tra điều kiện trước rồi mới thực thi lệnh tiếp theo.
2. while () //tương tự For()
3. do{}while() // đây là vòng lặp kiểm tra điều kiện sau (đk đúng) nghĩa là chương trình được thực thi lệnh ít nhất là một lần.

zzzaaa
20-03-2007, 03:24
Đây là đồ hình của vòng for
for(bieu_thuc_1; dieu_kien; bieu_thuc_2)
{Câu lệnh;}

Từ hình bạn có thể quan sát ra rằng việc dùng
for(bieu_thuc_1; dieukien;câu lệnh, bieu_thuc_2)
cũng chẳng khác gì...

The Old Man
20-03-2007, 04:29
for , while và do while giống nhau tuy nhiên for thường dùng để đếm như 100 lần từ n=1 đến n=100. Nên for dùng cho số count nhất định và không thể loop mải mải ( ví dụ n không thể lớn hơn 100 ). Còn while và do while thì loop mải mải đến khi nào điều kiện while thoả mản thì mới ngưng (break).

tienthanh_tn
23-03-2007, 13:29
Xét về bản chất thì for và while trong C/C++ là hoàn toàn tương đương: for cũng có thể lặp mãi chứ không phải là bắt buộc lặp một số lần count nào đó, nhưng đúng như bác Tom nói là for thường dùng cho một vòng lặp biết số lần lặp biết trước còn while và do...while thường dùng cho vòng lặp mà chỉ biết điều kiện lặp, số lần lặp chưa xác định.

Còn while và do while thì loop mải mải đến khi nào điều kiện while thoả mản thì mới ngưng (break).Bác Tom gõ chỗ này hơi nhầm từ một chút: điều kiện while không thỏa mãn thì mới ngưng.

The Old Man
23-03-2007, 13:50
Bác Tom gõ chỗ này hơi nhầm từ một chút: điều kiện while không thỏa mãn thì mới ngưng.

Bạn nói đúng. Còn đúng thì còn while. Khi nào không dúng thì hết while.

dongminha6
14-10-2009, 21:29
học đến vòng lặp trong C thi không hiểu gì nữa.Ai giúp mình với

vanes_tpt
16-10-2009, 08:58
giai? thick nhu cut'

ha dai
17-10-2009, 16:17
ừ vòng lặp for hay while hoặc do while là đơn giản nhất tui cứ tưởng bạn hỏi về các giải thuât của các chương trình chứ.chúc may mắn hơn ở các vấn đề khác

alone_alone
18-10-2009, 23:02
<-- cho i chạy từ 0 đến 100, mỗi lần lặp làm gì thì làm
:D
đại khái vậy

là 0--->99 chứ, là đủ 100 vòng rồi.