Gawkzz Gawkzz - 1 month ago 8
C++ Question

only able to check first element of my array

I am having some issues with getting my array to iterate through in my for loop.
The point of this function is to check if the number has already been placed into the array somewhere else so no duplicates can appear.
when I run through the function it only iterates through the first element of the function and stops.

bool check(int wins[], int number)
{
for (int i = 0; i <= arraySize; ++i)
if (number == wins[i])
{
return true;
}
else if (number != wins[i])
{
return false;
}

}


I really appreciate the help.

Answer

Your indentation is misleading. Here what is happening:

bool check(int wins[], int number)
{   
    for (int i = 0; i <= arraySize; ++i)
        if (number == wins[i])
        {
            return  true;
        }
        else if (number != wins[i])
        {
            return false;
        }
}

So in first iteration, you, either number is equal to the element or it's different, but in both case you return and the function is finished !

If you want to search your item, you have to do a slight change:

bool check(int wins[], int number)
{   
    for (int i = 0; i < arraySize; ++i)   // assuming that arraySize is some const size of the array
        if (number == wins[i])   // if number is found 
        {
            return  true;        // return immediately  
        }

    // if you arrive here, the loop finished without a match
    return false;
}
Comments