SóProvas


ID
638218
Banca
FUMARC
Órgão
PRODEMGE
Ano
2011
Provas
Disciplina
Programação
Assuntos

Analise o seguinte programa desenvolvido na linguagem Java:
public class BreakTest {
public static void main(String[] args)
{
int count;
int loop = 10;
for (count = 1; count <= 10;
count++) {
if (count++ == loop--)
break;
System.out.printf( "%d" + " ",
count);
}
}
}

Assinale a opção que corresponde à saída CORRETA gerada pelo programa:

Alternativas
Comentários

  • A resposta é a letra "b".

    Ao aplicar o método de depuração de algoritmos conhecido por "chinês" ou "chinesinho" (representado abaixo), é possível verificar que na quarta vez em que o conjunto de instruções do comando "for" for executado (quarta interação), a condição comparativa "if" tornar-se-á verdadeira e a execução do programa será interrompida, tendo impressa (System.out.printf) os valores: 2 4 6
    Interação Loop Count System.out.printf
    1 10 1 (inicializado no comando for)  
    1 9 (loop-- da instrução if) 2 (count++ da instrução if) 2
    2 9 3 (count++ do comando for)  
    2 8 (loop-- da instrução if) 4 (count++ da instrução if) 4
    3 8 5 (count++ do comando for)  
    3 7 (loop-- da instrução if) 6 (count++ da instrução if) 6
    4 7 7(count++ do comando for)  
  • O x da questão é o if (if (count++ == loop--)). Como os operadores estão depois das variáveis, você primeiro deve comparar as variáveis count e loop e depois adicionar, no caso de count, e diminuir, no caso de loop.
  • b-

    1-var count inicia 0. loop, 10.

    2- o for loop executa enquanto count for igual ou menor a 10.é menor a 10? executa. é igual a 10?executa. é maior? sai do for loop

    3- cada vez que ao if executa, count aumenta 1 (count++), equanto que loop decrementa -1.

    4- o system.out.printf executa a cada iteração. ao fim da 1°, o output é 2, porque o count++ iniciou em 1 e foi incrementado apos o if.

    5- na proxima iteracao, ele chega ao if com count = 3. apos, count=4. agora o system.out.printf executa de novo. isso ocorre para valores pares, enquanto que o count asume valores impares no for loop.

    6- como notado pelo colega, quando vars loop e count valerem 7, serao iguais e o break é ativado, sem entrar no system.out.printf.