考虑两个for循环声明:
for (int i = 0; i < 70; ++i)
和
for (int i = 0; i <= 69; ++i)
我假设第二个将进行139次总比较而不是69次。我的假设是否正确?我不是电气工程师,所以我不知道ALU实际上是如何工作的,不管它是否小于或等于&#34; thingamabob一举或什么。
您能举例说明何时使用<=
是合理的吗?
顺便说一句,我试图成为一个&#34;硬核&#34;像你们这样的程序员。
答案 0 :(得分:5)
这里没有正确或错误的答案。
不同的循环会有不同的要求。有时您会使用<
,有时您会使用<=
。其他时候您将使用>
!
天哪,可能性!您可以使用&&
或||
或...
有时你根本不会使用操作员!你可以使用变量的值!
或函数的返回值!
或者......布尔!
另外,请查看short-circuit evaluation。
给出以下逻辑表达式
9 < 10 || 9 == 10
只会进行1次比较,因为前半部分是真的。
我相信<=
会相应地进行优化。
答案 1 :(得分:3)
相关的事情不是使用'&lt;'或'&lt; =',这是无关紧要的。
重要的是70
或69
是否是您计划中的重要内容。
也就是说,如果你的数组有70
个元素,那么最合乎逻辑的做法是编写70
,并使用相应的操作数。
例如,在具有基于1的数组的语言中,您将编写:
for i = 1, i <= 70
但在基于0的数组中:
for i = 0, i < 70
答案 2 :(得分:0)
没有。第一个和第二个循环产生相同数量的循环,即70。
也没有比较。像你输入的for-loop
结构只会使一行或一段代码重复出现。
如果您想进行比较,则需要使用if
声明。
何时使用<
和<=
是所有个人编码偏好。只要它给你相同的结果,你可以安全地使用其中任何一个。
当然,某些情况可能会更好地使用一个而不是另一个。但这些只是具体案例。
编辑:如果一杯半空,你会说它是半空还是半满?你的回答可能是&#34;两者对我来说都是一样的。&#34;。与选择<
和<=
类似。您可以随意使用自己喜欢的任何一种。没有固定的规则。
答案 3 :(得分:0)
我不认为<=
会进行两次比较而<
只会进行两次比较。编译器通常不会按字面解释此运算符,并可能在内部将<=
更改为<
。
答案 4 :(得分:0)
除了另一个答案之外,在你的情况下,for (int i = 0; i < 70; ++i)
更常规,因为一旦习惯了,乍一看很容易看到我们将有70次迭代(包括从0到69)。