C++ 对于c+中的循环+;,这两种风格有什么不同吗?
样式一:C++ 对于c+中的循环+;,这两种风格有什么不同吗?,c++,C++,样式一:for(inti=0;i对于这个特殊的问题,没有区别。但是,一般来说,首选第一种样式,因为它稍微安全一些 想想如果i变成类似10001的样子会发生什么?在第一种样式中,循环将终止。而在第二种样式中,您将得到一个无限循环 如果您坚持使用第一种样式,您还可以将i增加任何不是10000倍的值,并且仍然可以保证循环的终止。对于这个特定问题,没有区别。但是,一般来说,首选第一种样式,因为它稍微安全一些 想想如果i变成类似10001的样子会发生什么?在第一种样式中,循环将终止。而在第二种样式中,您将
for(inti=0;i对于这个特殊的问题,没有区别。但是,一般来说,首选第一种样式,因为它稍微安全一些
想想如果i
变成类似10001的样子会发生什么?在第一种样式中,循环将终止。而在第二种样式中,您将得到一个无限循环
如果您坚持使用第一种样式,您还可以将i
增加任何不是10000倍的值,并且仍然可以保证循环的终止。对于这个特定问题,没有区别。但是,一般来说,首选第一种样式,因为它稍微安全一些
想想如果i
变成类似10001的样子会发生什么?在第一种样式中,循环将终止。而在第二种样式中,您将得到一个无限循环
如果您坚持使用第一种样式,您还可以将i
增加任何不是10000倍的值,并且仍然保证循环的终止。在这种情况下没有区别。常用的'在这种情况下没有区别。常用的'如果您也在循环内操作i
,则没有机会hati
在任何时候都可能不等于第二种样式中的10000
,它可能成为无限循环
其中,与第一种样式一样,即使在任何条件下,i
的值在循环内递增,循环肯定会在某个时间点终止
编辑:即使i
的值不会在循环内被修改,并且如果您假设这只是做同一件事的两种方法,作为程序员,您必须选择第一种样式,因为它具有含义、可读性,并且出于明显的原因稍微安全。如果您也在循环内操作i
,则有可能i
在任何时候都可能不等于第二种样式中的10000
,它可能成为无限循环
其中,与第一种样式一样,即使在任何条件下,i
的值在循环内递增,循环肯定会在某个时间点终止
编辑:即使i
的值不会在循环中被修改,并且如果您假设这只是做同一件事的两种方法,作为程序员,您必须选择第一种样式,因为它具有含义、可读性,并且出于明显的原因稍微安全一些。第一种样式是“更安全的”因为它将继续以大于1的增量工作(例如,如果我从9999到1002),只要考虑两个循环的行为,如果块只包含i=10001;
而没有其他内容。这是一个非常流行的问题看看@Borgleader,第二个是“更安全”因为它使用非随机访问迭代器。@ BordCug我是使用固定的语法形式(这里是“遍历一个范围”)时语法一致性的粉丝。其他人都认识到这是合乎需要的,这就是为什么我们在现代C++中有了基于范围的<代码> < /COD>循环的原因。(基于范围的for
循环当然可以用于在数值范围内迭代,例如,请参见。-这样做的好处远远超过了通过意外将循环变量增加超过1而跳过上限的理论风险。第一个循环“更安全”,因为它将继续以大于1的增量工作(例如,如果我从9999到1002)只要考虑两个循环的行为,如果块只包含i=10001;
而没有其他内容。这是一个非常流行的问题看看@Borleader第二个问题是“更安全”因为它使用非随机访问迭代器。@ BordCug我是使用固定的语法形式(这里是“遍历一个范围”)时语法一致性的粉丝。其他人都认识到这是合乎需要的,这就是为什么我们在现代C++中有了基于范围的<代码> < /COD>循环的原因。(基于范围的for
循环当然可以用于在数值范围内进行迭代,参见示例。-这样做的好处远远超过了由于不小心将循环变量增加了1以上而跳过上限的理论风险。我怀疑for循环使用浮点数作为迭代值。我也是,但这是错误的。)可能。我会怀疑使用浮点数作为迭代值的for循环。我也是,但这是可能的。你的意思是“潜在无止境循环”,因为一旦溢出int
,可能会再次达到10000。如果循环处理内存,则在达到溢出之前可能会出现分段错误。你的意思是“潜在无止境循环”b因为一旦溢出int
,可能会再次达到10000。如果循环处理内存,则在达到溢出之前可能会出现分段错误。