1
resposta

[Sugestão] Ajudando aos alunos

Gostei da forma do desafio da pergunta, o erro que acontece se dá quanto se lê o código atentamente, pois este teve a modificação do código onde o Else está deslocado logo após o " if ", fechando a condicional. Caso leia sem atenção, este passa desapercebido, mas lembrando que para se programar, devemos estar sempre atentos nos minimos detalhes. Leia novamente:

bool letra_existe(char chute){ for(char letra : PALAVRA_SECRETA){ if(chute == letra){ return true; } else{ return false; } } }

1 resposta

Olá, Ana. Tudo bem?

Que bom que você está atenta aos detalhes do código. A modificação que você fez, colocando o else logo após o if, faz com que a função retorne false assim que encontrar a primeira letra que não corresponde ao chute. Isso significa que a função só verifica a primeira letra da palavra secreta e, se não for igual ao chute, retorna false imediatamente.

Por exemplo, para a palavra "MELANCIA", se o chute for 'M', a função retornará true corretamente. No entanto, se o chute for 'E', a função verifica 'M' primeiro, não corresponde, e retorna false sem verificar o restante da palavra. Por isso, a função não funcionará corretamente para chutes que não sejam a primeira letra da palavra secreta.

A solução correta seria manter o else fora do loop, como no exemplo original da aula, para garantir que todas as letras sejam verificadas antes de retornar false se nenhuma delas corresponder ao chute.

Espero ter ajudado e bons estudos!