# java - Else if isn't working

This should put word yup to every second character, yap to every fifth and both yup yap to every tenth. It does put only yup to every second character.

I can't figure out what's the problem. Thank you for your help.

for(int i = 0; i < word.length(); i++) {

if( i % 2 != 0) {

System.out.print(word.charAt(i) + " yup");

System.out.println();

}

else if( i + 1 % 5 == 0) {

System.out.print(word.charAt(i) + " yap");

System.out.println();

}

else if( i + 1 % 10 == 0) {

System.out.print(word.charAt(i) + " yup yap");

System.out.println();

}

else{

System.out.println(word.charAt(i));

}

}

}

Put () in your else if operations. Mod (%) has precedence over sum, that's why it's not working.

else if( (i + 1) % 5  == 0)

and

else if(( i + 1) % 10 == 0)

Modulo 5 "hides" modulo "10", must rethink Your algorithm. Allways a number is multiplicity of 10, is 5 too

Reverse the if-else statements and put i + 1 in braces:

if((i + 1) % 10 == 0)   {
System.out.print(word.charAt(i) + " yup yup");
System.out.println();
}
else if((i + 1) % 5 == 0)    {
System.out.print(word.charAt(i) + " yap");
System.out.println();
}
else if(i % 2 != 0)   {
System.out.print(word.charAt(i) + " yup");
System.out.println();
}
else{
System.out.println(word.charAt(i));
}

If (i + 1) % 10 is zero, then (i + 1) % 5 is zero, too.