c# - 在 C 系列中,在一个循环中,为什​​么 "less than or equal to"比 "less than"符号更受欢迎?

标签 c# c++ c

<分区>

为什么在 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

我理解为什么不鼓励循环 3,因为代码中的某些东西可以分配 i > 5导致无限循环。但是loop1loop2本质上和loop2是一样的可能在性能方面更好,因为只进行了一次比较。那为什么是loop1更优选。这只是约定俗成还是另有其意?

注意:我没有接受过正规的编程培训。当我需要更好的工具来对 8051 进行编程而不是使用汇编语言时,我才选择了 C。

最佳答案

for循环常用于遍历数组,限制为数组的长度。由于数组是从零开始的,所以最后一个有效元素是 length-1 .所以选择是:

for (int i = 0; i < length; i++)

for (int i = 0; i <= length-1; i++)

第一种比较简单,所以首选。因此,即使限制不是数组大小,这种习惯用法也变得很普遍。

我们不使用 !=因为有时我们会编写索引以可变步长递增的循环,有时它会跳过限制。所以使用 < 更安全比较,所以这些不会变成无限循环。

关于c# - 在 C 系列中,在一个循环中,为什​​么 "less than or equal to"比 "less than"符号更受欢迎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953674/

相关文章:

c++ - 为什么taskset对fedora没有影响?

c - 需要帮助理解 for 循环中的 strncmp 函数正在做什么

c# - 浏览器关闭时停止调试 Visual Studio 2013

c# - unity 霰弹枪制作

c++ - 为什么在 C++ 类指针声明中使用 'struct' 关键字

c - 从二叉搜索树中搜索、插入、输出。

c - 在执行多个条件时,C 中的 do while 循环有问题

c# - 使用 AJAX 在 jquery 对话框内的 jquery 选项卡内加载 MVC 用户控件(C# Inside)

c# - 在该类的构造函数中实例化类变量

c++ - 错误的 libserial 接收数据序列