为什么增量语句是 C++ 中 for 循环中的一件事?对我来说这似乎是多余的,因为您可以简单地将增量放在条件代码中。我在这里误解了一些重要的事情吗?
为了更好地说明我的问题,我添加了一些伪代码: ->
和有什么区别for( int a = 10; a < 20; a = a + 1 )
{
cout << a << endl;
}
和
for( int a = 10; a < 20;)
{
a = a + 1
cout << a << endl;
}
最佳答案
有时不仅仅是方便。
这些是等价的:
for (int a = 10; a < 20; a = a + 1) {
cout << a << endl;
}
for (int a = 10; a < 20; ) {
cout << a << endl;
a = a + 1;
}
但是,这些不是:
// this works ...
for (int a = 10; a < 20; a = a + 1) {
if (blah ...)
continue;
cout << a << endl;
}
// this doesn't
for (int a = 10; a < 20; ) {
if (blah ...)
continue;
cout << a << endl;
a = a + 1;
}
由于您来自 python,惯用 for 循环就像 python range
,但更强大。你的 C for 循环,用 python 表示是:
for a in range(10,20,1)
将其表达为更惯用:
for (a = 10; a < 20; a += 1)
因为循环增量是1
,所以更惯用的做法是:
for (a = 10; a < 20; ++a)
但是,for 循环是:
for ([init_stmt]; [test_stmt]; [incr_stmt])
任何 *_stmt 都可以是复合的:
for (x = 0, y = 0; x < 10; ++x, y += 2)
关于c++ - 增量语句的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34458194/