Hỏi về define for

Ai chỉ dùm e cái 'define for ’ và cái FOR(i,0,n) với ạ. E tưởng For là phải có điều kiện chứ ạ?

Ý bạn là như thế nào? Bạn có thể nói rõ hơn không?

bạn hiểu define là gì không đã

dùng #define để định nghĩa macro, khi chương trình chạy thì nó sẽ thay
FOR(i,0,n) bằng cái for(int i = 0; i < n ; i++)
giúp cho việc lập trình được nhanh hơn do phải gõ ít hơn, có thể dùng để định nghĩa macro tìm số lớn, số bé, hằng số, v.v Xem thêm các ví dụ ở đâyđây
Ví dụ khác
#define PRINT10(a) for(int i = 0; i < 10; i++ ) printf("%d ", a);

giờ chỉ cần gõ PRINT10(100) thì nó in ra 10 số 100 trên một hàng mà không cần viết hết câu lệnh for ra.

2 Likes

Đây là một cách để hiểu được các từ khoá trong các ngôn ngữ:
https://translate.google.com/#en/vi/define

Theo mình nghỉ nếu không hiểu rỏ về define thì không nên động đến nó kẻo lại lại dính mấy lỗi “trên trời rơi xuống” :grin: ví dụ như #define MSG "something here";. Nó như con dao 2 lưỡi ấy, không biết dùng là dể đứt tay lắm :grin:

Bạn xem video này của anh Đạt chưa?

e xem r, e k hiểu sao lại khai báo đc kiểu define for…
và e k hiểu chỗ for (i;0;n) là gì

sau khi đọc comment của @banhmisg9509 thì e đã hiểu chỗ for(i;0;n) rồi ạ.
E cũng biết define là gì rồi ạ.

Giờ e còn chưa rõ phần #define for(i;a;b) for(int i=a;i<b;i++) nữa ạ.

bạn thắc mắc vậy cũng đúng vì mình thấy tham số FOR(i,a,b) trong đó i là không cần thiết chỉ cần FOR(a,b) for(int i = a, i < b; i++) là được , như vậy nó sẽ lấy tham số trong cái macro FOR(a,b) thay a b vào chỗ a,b trong vòng for.

không phải for mà là FOR
#define FOR(i;a;b) tức là định nghĩa đoạn lệnh FOR gồm 3 biến cục bộ i, a, b, khi được gọi trong chương trình thì sẽ được thay bằng 3 biến toàn cục tương ứng (tức là nếu gọi FOR(i;0;n) thì sẽ chạy khối lệnh được định nghĩa trong FOR với i=i; a=0; b=n
FOR(i;a;b) được định nghĩa là for (int i = a; i < b; i ++)

1 Like

Vậy tại sao e làm như này lại k đc ạ ?

Vì phân cách tham số trong FOR là dấu "," chứ không phải dấu ";"

ok rồi ạ :slight_smile: thanks anh

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?