【问题标题】:objective-C algorithm obstacleObjective-C 算法障碍
【发布时间】:2014-01-30 13:02:27
【问题描述】:

这段代码在shake事件的作用域内,

if(i % 3) {
    self.Label.text = [NSString stringWithFormat:@"%d", y];
    y += 1;        
}

每当我达到 3 时,
y += 1 执行。

当我再次摇晃它时,

y 值再加 1
我现在等于 4

所以现在 i = 4 和 y = 2,我明白为什么 y 添加另一个 1,但我就是不知道如何避免它,请帮忙。

【问题讨论】:

  • 我不知道你在说什么
  • 我代表什么?
  • 你应该尝试学习基本的编程,最基本的关于操作员在做什么已经对你有所帮助了。
  • How Does Modulus Divison Work 的可能重复项
  • 我真的很抱歉 @alinoz 是新手,只是想提出问题和学习。

标签: objective-c


【解决方案1】:

试试if (i % 3 == 0)。通过使用i % 3,这段代码将i 不能被3 整除时执行,而不是i 可以被3 整除时执行。

【讨论】:

    【解决方案2】:

    您可能正在寻找这个:

    if(i % 3  == 0){
    
            self.Label.text = [NSString stringWithFormat:@"%d", y];
            y += 1;        
    }
    

    此代码只会在每 3 次迭代(或摇晃或您正在做的任何事情)增加 y

    【讨论】:

    • 做到了!太感谢了!不过我把 0 改成了 1 :)
    • @frustratediOSdeveloper 这会导致代码在i-1被3整除时执行。它仍然会每3次发生一次,但执行时会发生偏移。 (如果i 在任何摇晃之前从 0 开始,每次摇晃增加 1,并且您希望 y+=1 从第一次摇晃而不是第三次摇晃开始,这可能是理想的行为,我想。)
    【解决方案3】:

    你可以试试这个的正确方法:

    if(i % 3 == 0) {
        NSLog(@"Value of i : %d and Y is : %@", i, [NSString stringWithFormat:@"%d", y]);
        self.Label.text = [NSString stringWithFormat:@"%d", y];
        y += 1;        
    } else {
        NSLog(@"Value of i : %d and Y is : %@", i, [NSString stringWithFormat:@"%d", y]);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多