C语言中的运算符: 不大于等于。

5

只是一个简单的问题:

我想测试一个变量是否不大于或等于另一个变量。

我已经编写了如下代码:

if (f!>=i){
print ("True");}

但是我的C编译器无法识别它。我在网上找不到它,这可能吗?


! 是一元运算符。它必须应用于一个东西,所以要考虑那个东西应该是什么。 - chris
嗯,这不就等同于 if(f<i) 吗? - Lee Taylor
4
你很幸运!C语言有一个“不大于等于”的操作符,它叫做“小于”。 - David Schwartz
对于您的使用情况来说,这可能并不重要,但是我内心的追求完美让我不得不指出,如果涉及NaN,则f < i!(f >= i)不等价。与NaN进行比较始终返回0(false)。 - Daniel Fischer
@mah:猜你是对的。不幸的是,我不能收回我的关闭投票。 - Peter O.
显示剩余3条评论
5个回答

12

只需将其更改为(f < i),即!(f >= i)

注意:如果fiNaN,则不适用此规则。这是因为 f >= i 如果其中任何一个是NaN,则将计算为false,导致 !(f>=i) 计算为true,而 f<i计算为false


请注意,如果其中一个值为NaN,则对于浮点类型,a < b!(a >= b)不是相同的。 - Sophie

5
你想要实现的是:if (!(f>=0))...

根据你所做的操作,使用<更合理。我在这里的建议只是为了翻转任何if语句的极性而提供的通用方法。

2
不大于或不等于相当于小于。

1
使用别名“即”,而不是!>,反向思考并使用f<i。您不能对多个运算符使用!,即!+=无效。

-1
你可以这样写:
if(!(anyvariablename<0))

这是不正确的,因为它将对任何变量名等于0的情况返回真值,而这是不期望的。 - wizzwizz4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接