Objective c 如何仅使其中一个变量的值为0?

Objective c 如何仅使其中一个变量的值为0?,objective-c,Objective C,我试着让这4个变量(squareType1、squareType2、squareType3和squareType4)中只有一个值为0,但哪个变量应该是随机的。编码是关闭的,我知道,但我只是不知道如何修复它 squareType1 = arc4random() %2; squareType2 = arc4random() %2; squareType3 = arc4random() %2; squareType4 = arc4random() %2; if

我试着让这4个变量(squareType1、squareType2、squareType3和squareType4)中只有一个值为0,但哪个变量应该是随机的。编码是关闭的,我知道,但我只是不知道如何修复它

    squareType1 = arc4random() %2;
    squareType2 = arc4random() %2;
    squareType3 = arc4random() %2;
    squareType4 = arc4random() %2;

    if (squareType2 == 0 || squareType3 == 0 || squareType4 == 0) {
        squareType1 = 1;
    }
    if (squareType1 == 0 || squareType3 == 0 || squareType4 == 0) {
        squareType2 = 1;
    }
    if (squareType2 == 0 || squareType1 == 0 || squareType4 == 0) {
        squareType3 = 1;
    }
    if (squareType2 == 0 || squareType3 == 0 || squareType1 == 0) {
        squareType4 = 1;
    }

一种更简单的方法是,首先将所有4个值设置为1,然后随机将其中一个变量重置为0,例如

squareType1 = squareType2 = squareType3 = squareType4 = 1;
switch (arc4random() % 4)
{
    case 0: squareType1 = 0; break;
    case 1: squareType2 = 0; break;
    case 2: squareType3 = 0; break;
    case 3: squareType4 = 0; break;
}

请注意,如果您将四个单独的变量重构为一个数组,您可能会发现在这种情况下以及一般情况下,生活会更轻松,例如,
intsquareType[4]

一种更简单的方法是,首先将所有4个值设置为1,然后随机将其中一个变量重置为0,例如

squareType1 = squareType2 = squareType3 = squareType4 = 1;
switch (arc4random() % 4)
{
    case 0: squareType1 = 0; break;
    case 1: squareType2 = 0; break;
    case 2: squareType3 = 0; break;
    case 3: squareType4 = 0; break;
}
请注意,如果您将四个单独的变量重构为一个数组,您可能会发现在这种情况下以及一般情况下,生活会更轻松,例如,
intsquareType[4]