Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não entendi como esse código impede que 33 e 37 apareçam

if( contador == 33 ) {
        contador = contador + 1;
        }
        if(contador == 37) {    
            contador = contador + 1;
1 resposta
solução!

Olá Thais, O que ocorre é que quando o contator for 33, ele vai entrar nesse primeiro IF e vai virar 34... ai nessa interação ai ele não vai mostrar o contador... na próxima interação, o contador é 34, então ele não vai entrar nesse primeiro if, pois ele não é igual a 33 e nem na de baixo, pois ele não é igual a 37, mas vai entrar no else, pois ele é diferente de 37. Neste ele ele mostra o contador e incrementa o contador, virando 35... ai continua a repetição novamente, com os incrementos até quando o contador for 37.. neste caso, ele não entrará no primeiro if, pois não é 33, mas entrará no segundo pois ele é 37, ai dentro dele ele vai incrementar o seu numero mais não vai mostrar o contador.... ai o numero passa a ser 38 e começa novamente o loop.

Resumindo: Sempre que o numero for <= 40 e não for 33 e 37, ele vai entrar somente no bloco do else, que vai mostrar o numero e incrementar ele. Quando o numero for 33 ou 37, ele vai entrar nos blocos dos ifs respectivos, que somente incrementa o numero e não mostra ele. Então se não mostra, irá pular na visualização do resultado:

30..31..32..34..35..36..38..39..40

    while(contador <= 40) {

        if( contador == 33 ) {
        contador = contador + 1;
        }
        if(contador == 37) {    
            contador = contador + 1;
        }
        else {
        mostra(contador);
        contador = contador + 1; 
        }
      }