一切可以用while的,都可以用for表示,反之也可以。
while(逻辑值) { 循环体; } for(初始值 ;逻辑值 ;改变变量的值) { 循环体; } 其实,它们工作原理是一样的。那么就从内存使用情况来考虑了: 如果它们定义的变量类型一样,变量的个数一样。那么。。。。。。 哎,其实这两个就是一样的。。。我也不知道怎么解释。。。 比如,在for中,“改变变量的值“不一定放在括号里,亦可以放在循环体里面, 同样,while的逻辑值可以是一个”逗号表达式“,也就是说,可以让变量的改变放到逗号表达式中,不一定要放在循环体里面 for适合于循环次数固定的场合。 while适合于退出循环的条件是一个表达式的场合 ngx_pool_large_t *l; for (l = pool->large; l; l = l->next) { ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, "free: %p", l->alloc); if (l->alloc) { ngx_free(l->alloc); } } for逻辑更清楚,推荐使用for代替while