[RESOLVIDO]Problema pra imprimir linha

To com uma dúvida nesse código

[code]
import java.util.Scanner;

public class Forca {

public static void main(String[] args) {

                Scanner s = new Scanner(System.in);

                Traços T = new Traços();

                int forca = 1, cont = 0, perder = 0, vencer = 0;
                 
                String[] traços = {"_ ", "_ ", "_ ", "_ "};        
                
                System.out.println("***Jogo da forca***");
                System.out.println("Digite uma letra");
                
                         T.exibe(traços);

                String letrasDigitadas[] = new String[26];                 

                String[] palavra = {"m", "a", "t", "o"};

                String a = s.nextLine();
   
                   for (int i = 0; i < palavra.length; i++) {
                      if (palavra[i].equals(a)) {
                       System.out.println("Letra certa.. digite outra");
                         break;
                            } else {
                               if (palavra[i]!=(a)) {
                       System.out.println("Letra errada");  
                            }   
                         } 
                      }

}
}

   class Traços {

                   void exibe(String[] traços) { 

                     for(int i = 0; i < traços.length; i++) {

                        System.out.print(traços[i]);
                   
                  }
                 
                        System.out.println("");        
       
               } 
           }
              [/code]

Quando compilo, a linha 32
é imprimida 3 vezes no programa, gostaria que alguem me dissesse o porque.
Valeu!

Precisa dar uma olhada na logica aplicada ao seu programa.

Você deve ter digitado a letra “o” no pront, ai o que ele faz passa pelo array de letres até encontrar a letra, sendo que as 3 primeiras não são iguais ele vai imprimir 3x a mensagem de erro.

Sua lógica está incorreta pq dessa forma todas as vezes q passar pelo seu if e a letra for incorreta ele cai no if com a mensagem "Letra errada", acredito q a forma mais simples para resolver isso seria vc colocar uma variável boolean p/ saber se a letra está correta e imprimir a mensagem depois da finalização do loop, segue exemplo:

// Variável que vai verificar o resultado da inserção
boolean resultado = false;

// Percorre o array e verifica se a letra está correta
for (int i = 0; i &lt; palavra.length; i++) {
    if (palavra[i].equals(a)) {
        resultado = true;
        break;
    } else {
        resultado = false;
    }
}

// Verifica o acerto ou erro e imprime a mensagem correta
if (resultado) {
    System.out.println(&quot;Letra certa.. digite outra&quot;);
} else {
    System.out.println(&quot;Letra errada&quot;);
}

Nossa caras, valeu mesmo.
Vou estudar mais lógica de programação :smiley:
Abraço.

Não esqueça de marcar o tópico como [RESOLVIDO] blz! :wink: