Trong nhiều ngôn ngữ (một danh sách rộng, từ C đến JavaScript):
- dấu phẩy
,
các đối số riêng biệt (ví dụfunc(a, b, c)
), trong khi - dấu chấm phẩy
;
riêng biệt hướng dẫn tuần tự (ví dụinstruction1; instruction2; instruction3
).
Vậy tại sao ánh xạ này lại bị đảo ngược trong cùng các ngôn ngữ cho các vòng lặp :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
thay vì (những gì có vẻ tự nhiên hơn đối với tôi)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Chắc chắn, for
là (thường) không phải là một chức năng, nhưng đối số (ví dụ init
, condition
, increment
) cư xử giống như đối số của một hàm hơn một chuỗi các hướng dẫn.
Là do lý do lịch sử / một quy ước, hoặc có một lý do tốt cho việc trao đổi ,
và ;
trong các vòng lặp?
;
không sử dụng |
?" (hoặc Tại sao chúng ta sử dụng ' other' not 'other '? )) không phải là một ngôn ngữ, mà là một số lượng lớn trong số đó. Một câu trả lời, ví dụ: "nó được tạo ra trong C như một cách viết tắt cho vòng lặp while (và nhiều câu lệnh cho inc chỉ được nghĩ sau này), và mọi người không muốn thay đổi nó để tránh sự khó chịu của lập trình viên" sẽ hoàn toàn ổn.