Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对于c+中的循环+;,这两种风格有什么不同吗?_C++ - Fatal编程技术网

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
,则没有机会hat
i
在任何时候都可能不等于第二种样式中的
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。如果循环处理内存,则在达到溢出之前可能会出现分段错误。