我目前正在德国学习计算机科学,但之前曾参与过几个 C/C++ 开源项目。今天我们在学校开始学习 C,我的老师说在循环内修改 for 循环变量是不行的,我绝对同意。然而,我经常使用一个for循环,没有最后一个递增部分,然后只在循环内部修改它,他也不喜欢这一点。
所以基本上可以归结为
for(int i=0; i<100;) {
[conditionally modify i]
}
Run Code Online (Sandbox Code Playgroud)
与
int i=0;
while(i<100) {
[conditionally modify i]
}
Run Code Online (Sandbox Code Playgroud)
我知道它们在编译后本质上是相同的,但我不喜欢使用 while 循环,因为:
是否有任何风格指南/常见做法可供选择?
如果您回答“我喜欢同时/更多”,至少请提供一个这样做的理由。
我确实已经搜索过类似的问题,但是,我找不到此案例的任何真正答案。
小智 3
不同的人/团队之间的风格指南有所不同。
forC 标准描述了这样的语法:
for(子句 1;表达式 2;表达式 3)语句
for 一旦你有效地使用了“ clause-1 ”,就立即使用是常见的做法,这样做的原因确实是因为范围有限:
[...] 如果子句 1是声明,则它声明的任何标识符的范围是声明的其余部分和整个循环,包括其他两个表达式;[...]
所以,你的论证没问题,你可以试着说服你的老师。但不要太努力。毕竟,风格问题很少有一个明确的答案,如果你的老师坚持他的规则,那么在为该课程编码时就遵循它们即可。