【问题标题】:Readability: list iteration with get_first/get_next, "while" vs. "for" loop可读性:使用 get_first/get_next 进行列表迭代,“while”与“for”循环
【发布时间】:2026-01-15 20:55:02
【问题描述】:

假设您想使用初始 get_first() 遍历一个列表,随后调用 get_next() 在列表末尾返回 NULL。

你更喜欢读哪一本?

element = get_first(list);
while (element)
{
    process(element);
    element = get_next(list);
}

对比

for (element = get_first(list); element; element = get_next(list))
{
    process(element);
}

迭代的状态保存在列表结构中。

我个人更习惯while 版本,但是当我看到有人使用for 版本时,我也很容易理解发生了什么,所以现在我想知道哪个更容易被大多数人阅读。

【问题讨论】:

    标签: for-loop while-loop readability


    【解决方案1】:

    两者都非常易读。你不会混淆你的读者与任何一个。 while 循环可以说更具可读性(但人们的里程可能会有所不同......)所以如果列表只迭代一次,我可能会使用它,否则使用更简洁的 for 循环。

    【讨论】: