import java.util.*;
public class BugFixes
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        altCaps("Computer Science");
    }
    static void altCaps(String hi)
    {
        String hi2 = hi;
        int locate = 0;
        for(int i = 0; i < hi2.length();i++)
        {
            if((Character.isLetter(hi2.charAt(locate))))
            {
                if(hi2.charAt(locate) % 2 == 0)
                {
                    System.out.print(hi2.toLowerCase().charAt(locate));
                    locate++;                   
                }
                else if(hi2.charAt(locate) % 2 == 1)
                {
                    System.out.print(hi2.toUpperCase().charAt(locate));
                    locate++;
                }                
            }
            else if(hi2.charAt(locate) == ' ')
            {
                System.out.print(" ");
                 locate++;
            }
        }
    }
}
This is one of the problems that I have on my current lab. I was able to fix a few other mistakes but I can't seem to find this one.
My question is why it is outputting "COMpUtER SCIEnCE"? I don't understand what is happening here and I've been looking through it for an hour now. My goal is to output "CoMpUtEr ScIeNcE"
I thought the (hi2.charAt(locate) % 2 == 0) and vice versa would alternate between the even and odd locations in the string, but I believe I have made a mistake somewhere. I just can't find it.
Using BlueJ V3.1.7
1 year high school Computer Science Experience and currently enrolled in AP Computer Science
Any Tips?
 
     
     
    