配列内の各文字が異なる 6 種類の文字のうち 4 種類で配列を埋めようとしています。配列に配置される文字は、switch ステートメントに基づいています。次に、配列に戻って、配置したばかりの文字がまだ配列にないことを確認し、そうである場合は別の文字を入力する必要があります。どうすればいいですか?アレイ全体を補充するのではなく、この 1 か所だけを補充します。
これは私がこれまでに持っているコードで、コメントが含まれています:
-(void) fillarray{
for (int i=0; i<4; i++)
{
int randomNum = arc4random() % 6; // generates a random number
switch (randomNum) // based on the number generated, it choses what color will be placed into the slot
{
case 1:
colorarray[i] ='r';
break;
case 2:
colorarray[i] ='o';
break;
case 3:
colorarray[i] ='y';
break;
case 4:
colorarray[i] ='g';
break;
case 5:
colorarray[i] = 'b';
case 6:
colorarray[i] = 'p';
default:
break;
}
for (int j=0; j<4; j++) // runs through the array to ensure that the recently placed color does not match previous placed colors
{
while (j /= i)
if (colorarray[i]==colorarray[j]) // if the color is already in the array
//try again to place another color in this location
}