关于Xcode 4.2中的编程,错误或只是糟糕的编程的几个问题?

时间:2011-11-28 01:07:02

标签: xcode

我是堆栈溢出的新手,我通常只是自己研究一下,但我刚开始使用xcode 4.2而且我无法帮助发现它很奇怪。

这些是问题:

为什么我不能乘以(1/2)但我可以乘0.5?如果我尝试第一个选项,它会认为它是0。

第二,这个if语句错了吗?

if (-1 < x < 0)

我发誓我已经在其他编程语言中完成了这项工作,但它不会在这里工作,所以我不得不改为if ((-1 < x) && (x < 0))

感谢您的时间。

4 个答案:

答案 0 :(得分:1)

错误?编程错误。

整数师已经咬了你。使它达到1.0 / 2.0,你将得到你期望的0.5。

代码if (-1 < x < 0)不正确。

答案 1 :(得分:0)

如果您编写1/2,则以整数运算执行,因此等于0。尝试乘以1.0/2.0

是的,如果语句错误(假设您要检查x是否在-1到0的范围内)。

答案 2 :(得分:0)

您的程序在语法上不正确,因此它与Xcode无关。

1/2是整数除法,它将计算为截断的整数。所以floor(1/2)= 0且行为确实正确。

与if语句相同。 if(-1&lt; x&lt; 0)只是在语法上不正确。

答案 3 :(得分:0)

这与Xcode无关,而是与C语言有关。

第一个问题:

x * (1 / 2)

C编译器将12视为整数,并且在整数数学中,1/2 = 0.如果要将其乘以浮点数,则可以执行以下操作:

x * (1.0 / 2.0)

x * ((float) 1 / (float) 2)

在第二期中,编译器会将(-1 < x < 0)解释为((-1 < x) < 0),这显然不是您想要的,因为(-1 < x)将返回0表示false,或1表示true。要在C中执行复合逻辑语句,您需要使用&&表示AND或||表示OR:

((-1 < x) && (x < 0))