在if和case语句中添加多个数字

时间:2013-09-06 04:13:32

标签: ios objective-c

我正在为iphone开发我的第一个游戏应用程序,而且在objective-c中我仍然有点不高兴。

游戏进展顺利,但我遇到了一个小问题...

我想这样做,以便每20次杀戮,你获得+1生命,我知道如何做到这一点,但是编写的代码写得不好......:

    switch (kills) {

        case 20:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;

        case 40:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;

        case 60:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;
        case 80:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;
        case 100:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;

        case 120:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;
        case 140:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;
        case 160:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;

        case 180:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

            break;

        case 200:

            lives++;

            livescount.text = [NSString stringWithFormat:@"%i", lives];

等等......我不想继续写这个直到无限大声笑


我知道这是一种编写代码的不正确方法。任何人都可以为每20次杀死= +1生命给我一个正确的代码。我可能会发现并理解代码的工作原理。

2 个答案:

答案 0 :(得分:4)

使用模运算符(%)返回除以20的余数;还要检查杀人次数是否为零。

if (kills != 0 && kills % 20 == 0) {
    lives++;
    livescount.text = [NSString stringWithFormat:@"%i", lives];
}

答案 1 :(得分:0)

你应该使用mod,所以:

if (kills && kills % 20 == 0) {
  lives++;
}

Mod(%)返回除法的余数:所以在这种情况下,如果kills可以被20整除,它将返回零。

祝你好运!