SóProvas


ID
2351509
Banca
FCC
Órgão
TRT - 11ª Região (AM e RR)
Ano
2017
Provas
Disciplina
Programação
Assuntos

Considere o programa Java abaixo.

public class Prova {

public static void main(String[] args) {

int a, b, c;

for (a = 2; a <= 10; a += 2) {

for (b = a; b <= 2; b++) {

for (c = 1; c <= a; c += b) {

System.out.print("" + a + b + c);

}

}

}

}

}

A saída na tela será

Alternativas
Comentários
  • for (a = 2; a <= 10; a += 2) { ---> a = 2 

              for (b = a; b <= 2; b++) {  ---> b = a('b' recebe 'a' que é 2) logo b=2

                for (c = 1; c <= a; c += b) { ---> c=1

                     System.out.print("" + a + b + c); 

                 }

              }

           }

     

    O ponto importante desta questão é que me nenhum momento é atribuido valor as varáveis, por isso a saída será: 221 letra e.

  • Segue para discussão:

     

    Discordo da afirmação do colega Rhedson Esashika. Existem 3 atribuições. O primeiro argumento da estrutura for nada mais é do que uma atribuição. Justamente por isso, a saída é 221, pois existem 3 atribuições, sendo uma para a (a=2), uma para b (b=a) e uma para c (c=1).

     

    Respeitosamente,

  • Acho que o segredo para acertar essa questão era lembrar que a variável "só muda na posição de memória" quando o laço inicia novamente

    ----

    O laço funciona da seguinte maneira:
    O laço se inicia pela condição inicial. Geralmente se inicia o contador. Esse primeiro estágio SEMPRE acontece.

    O segundo estágio é o teste da condição do laço. Caso seja verdade, o código é executado.
    Ao término de execução do código, ocorre o fator de mudança, que geralmente é um incremento ou decremento.

    Depois a condição é testada novamente. Caso retorne 'true', o código é executado.
    Ao término de execução do código, sempre ocorre o fator de mudança...e assim sucessivamente.

    http://www.javaprogressivo.net/2012/08/laco-for-tendo-um-maior-controle-sobre.html

  • O segredo da questão é saber que System.out.print("" + a + b + c) é diferente de System.out.print(a + b + c) e de System.out.print(a + b + c + "").

  • compilei o código para confirmar e realmente é 221