2
respostas

[Dúvida] Não entendi por que o FOR do J está sendo executado

Olá, eu não entendi essa parte do código:

for(int j=0; j < tentativas; j++){
                if(chutes[j] == palavra_secreta[i]){
                    achou = 1;
                    break;
                }

Motivo: a variável "tentativas" foi iniciada com o valor ZERO: "int tentativas = 0;"

por que esse "for" rodou? não era para esse for ser ignorado pelo programa já que a letra J foi iniciada com o valor ZERO igual a variável "tentativas"? ou então não era para usar o <= ao invés de < ?

2 respostas

Talvez eu tenha achado a resposta, lá em baixo tem "tentativas++;", o que me faz entender que o "do" não executou esse for na primeira varrida, mas na segunda em diante sim, procede?

exatamente isso. Na primeira iteração do loop, a condição j < tentativas é falsa, pois tentativas é igual a zero, só após a primeira iteração é que tentativas é incrementado, o que faz com que o loop seja executado uma vez na segunda iteração, duas vezes na terceira iteração e assim por diante, até alcançar o número máximo de tentativas. Ou seja, o loop vai ser executado exatamente o número de vezes que a variável "tentativas" for atualizada, desconsiderando seu vvalor inicial