零是不是小于或等于零? [关闭]

Posted

技术标签:

【中文标题】零是不是小于或等于零? [关闭]【英文标题】:Is Zero less than or equal to zero? [closed]零是否小于或等于零? [关闭] 【发布时间】:2016-04-06 01:19:22 【问题描述】:

假设我得到一个值i=0; 那么下面的变量leftsmaller会是true吗?

 while(i<=0 || arr[i]<arr[j])
    leftsmaller = true;

【问题讨论】:

0 你为什么不试试上面有i = 0的代码? @Quill-HATMANIAC 只是尝试一些你不确定的东西,可能会调用 UB,所以你不能确定其他编译器是否做同样的事情。 @Monty 顺便说一句,您是否意识到,由于条件中的所有变量都没有改变值,所以如果 i 什么?甚至0 == -0 都是真的。 【参考方案1】:

没有零不小于零,i &lt;= 0 变为 1 因为零小于或等于零。

【讨论】:

【参考方案2】:

如果左侧小于或等于到右侧,&lt;=(“小于或等于”)运算符将返回 true。因为0当然等于0,所以这个表达式将计算为true,这将导致代码进入while循环,将true分配给leftsmaller

【讨论】:

【参考方案3】:

当然零不小于零,但i &lt;= 0 变成1 因为零小于或等于零。

【讨论】:

【参考方案4】:

从未提及i 的变量类型。

如果是unsigned i,那么测试的&lt; 0 部分将失败。

如果是float i,那么测试的== 0 部分可能会失败——即使你可以发誓i 应该是0,因为可以存储不精确的值。

【讨论】:

虽然这在技术上是正确的,但在分配 i = 0; 之后,测试 i==0 始终为真,即使使用浮点变量也是如此。

以上是关于零是不是小于或等于零? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

插入时出错...索引(从零开始)必须大于或等于零且小于参数列表的大小

插入数组列表时,索引(从零开始)必须大于或等于零且小于参数列表的大小

索引(从零开始)必须大于或等于零且小于参数列表的大小。 - 字符串.格式

索引(从零开始)必须大于或等于零且小于参数列表的大小

System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小

C# 的问题:StartIndex 不能小于零。参数名称:startIndex [关闭]