It looks like keyState[i]
and prevKeyState[i]
are booleans (true/false values), so it makes no sense to compare them to zero. Maybe what you want is
return (keyState[i] == true) && (prevKeyState[i] == false);
or even, in a more readable form
return keyState[i] && ! prevKeyState[i];