Багато мов (широкий список, від C до JavaScript):
- комами
,окремі аргументи (наприкладfunc(a, b, c)), а - крапки з комою
;окремі послідовні інструкції (наприкладinstruction1; instruction2; instruction3).
То чому це відображення відмінено на тих самих мовах для циклів :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
замість (що мені здається більш природним)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Звичайно, forце ( як правило) не функція, але аргументи (тобто init, condition, increment) поводяться скоріше як аргументи функції , ніж послідовність інструкцій.
Це пов'язано з історичними причинами / конвенцією, чи є достатньо обгрунтованих міркувань взаємообміну ,та ;циклів?
;не використовуємо |?" (або Чому ми використовуємо "інше", а не "інакше"? )), що стосується не однієї мови, а великої їх кількості. Відповідь, що, наприклад, "це було зроблено в C як скорочений цикл, а цикл (а кілька заяв для inc були продумані лише пізніше), і люди не хотіли його змінювати, щоб уникнути роздратування програмістів", було б абсолютно чудово.