为什么在C系列语言中,当我们对任何循环使用计数器时,最优选的比较是Greater Equal To <=反转?请看看这三段代码
for (var i = 0; i <= 5; i++)
{...}/// loop1
for (var i = 0; i < 6; i++)
{...}/// loop2
for (var i = 0; i != 6; i++)
{...}/// loop3
Run Code Online (Sandbox Code Playgroud)
我理解为什么不鼓励循环3,因为代码中的某些东西可以分配i > 5导致无限循环.但是loop1并且loop2基本上是相同的,并且loop2可能是更好的性能,因为只进行了一次比较.那么为什么loop1更优选.它只是惯例还是还有更多东西?
注意:我没有正式的编程培训.当我需要更好的工具来编程8051而不是使用汇编语言时,我只是选择了C.
Bar*_*mar 10
for循环通常用于迭代数组,限制是数组的长度.由于数组是从零开始的,因此最后一个有效元素是length-1.所以选择是在:
for (int i = 0; i < length; i++)
Run Code Online (Sandbox Code Playgroud)
和
for (int i = 0; i <= length-1; i++)
Run Code Online (Sandbox Code Playgroud)
第一个更简单,所以它是首选.结果,即使限制不是数组大小,这个习惯用法也变得普遍.
我们不使用!=因为偶尔我们会编写循环,其中索引按可变步长递增,有时它会跳过限制.因此使用<比较更安全,因此这些不会变成无限循环.
| 归档时间: |
|
| 查看次数: |
781 次 |
| 最近记录: |