Obj-c不会解析if语句与mod

时间:2012-09-20 19:16:50

标签: objective-c if-statement modulo

所以我使用简单的if语句来在达到分数时提高对象的速度。我使用一个非常简单的if语句不起作用。在这种情况下,“pigSpeed”控制物体的速度。

    float difference = (self.view.bounds.size.height/4) - flyingPig.center.x; 

    score += -(int)difference;

    if (score % 1000 == 0 & score > 0)
    {
        pigSpeed++;
        NSLog(@"pigfaster");
    }

我知道得分正常,正如它所显示的那样,但if语句只是不起作用而且没有任何反应。我究竟做错了什么。如果需要,我可以添加更多代码。

4 个答案:

答案 0 :(得分:2)

&是按位和运算符; &&是合乎逻辑的,你想在这里使用。您的if语句实际上应该是:

if (score % 1000 == 0 && score > 0)

答案 1 :(得分:1)

继@victor ronin所说的......

float difference = ( self.view.bounds.size.height / 4.0f ) - flyingPig.center.x; 

int newScore = score + difference ;
if ( newScore > 0 && ( newScore / 1000 > score / 1000 ) )
{
    // did thousands place increment?
    ++pigSpeed;
}

score = newScore ;

答案 2 :(得分:0)

我同意andyvn22 - 你应该使用&&而不是&amp ;.但是,还有一个问题。

假设你得分= 999

计算差异后,差异= -5

您的分数将变为1004. 1004%1000将是4(不是零)

我认为你应该以某种方式改变你的状况,即使你跳过1000你仍然会提高速度。

答案 3 :(得分:0)

我不得不给予一点余地,所以'if(得分%1000 == 2&&得分> 999)'