Ciao elias90 e benvenuto nel mondo java.
L'errore sta nel fatto che dopo che trasformi la stringa in UpperCase non la trasformi più in lowerCase quindi la stringa rimane sempre maiuscola.
codice:
if(contatore%2==0){
stringa = stringa.toUpperCase();
System.out.println("la stringa è " +stringa);
}else{
//Quando entra nell'else devi di nuovo trasformare la stringa
stringa = stringa.toLowerCase();
System.out.println("la stringa è " +stringa);
}
Un'altra soluzione sarebbe, sfruttando l'immutabilità delle stringhe :
codice:
if(contatore%2==0){
System.out.println("la stringa è " +stringa.toUpperCase());
}else{
//Quando entra nell'else devi di nuovo trasformare la stringa
System.out.println("la stringa è " +stringa.toLowerCase());
}