gpt4 book ai didi

c - for 无增量 vs while

转载 作者:行者123 更新时间:2023-12-02 01:07:45 25 4
gpt4 key购买 nike

我目前在德国学习计算机科学,但之前做过几个 C/C++ 开源项目。
今天我们在学校开始使用 C 语言,我的老师说在循环中修改 for 循环变量是不行的,我完全同意。但是,我经常使用没有最后递增部分的for循环然后修改它只有在循环内,他也不喜欢。

所以基本上归结为

for(int i=0; i<100;) {
[conditionally modify i]
}

对比
int i=0;
while(i<100) {
[conditionally modify i]
}

我知道它们在编译后基本相同,但我不喜欢使用 while 循环,因为:
  • 通常的做法是将变量限制在尽可能小的范围内
  • 如果您重用 i(由于范围更大,您必须这样做),它可能会引入错误
  • 如果不使用不同的名称,则不能在以后的循环中为 i 使用不同的类型

  • 是否有任何风格指南/常见做法可供选择?

    如果你回答“我喜欢一段时间/更多”,至少提供一个你这样做的原因。

    我确实已经搜索过类似的问题,但是,我找不到这个案例的任何真正答案。

    最佳答案

    风格指南因人/团队而异。

    C 标准描述了 for 的语法。像这样:

    for ( clause-1 ; expression-2 ; expression-3 ) statement



    通常的做法是使用 for 尽快您可以有效使用“clause-1”,这样做的原因确实是因为范围有限:

    [...] If clause-1 is a declaration, the scope of any identifiers it declares is the remainder of the declaration and the entire loop, including the other two expressions; [...]



    所以,你的论证没问题,你可以试着说服你的老师。但不要太努力。毕竟,风格问题很少有一个明确的答案,如果你的老师坚持他的规则,那么在为那门课编码时就遵循它们。

    关于c - for 无增量 vs while,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46787412/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com