SóProvas


ID
2355358
Banca
CONSULPLAN
Órgão
TRF - 2ª REGIÃO
Ano
2017
Provas
Disciplina
Programação
Assuntos

A ordem de execução dos comandos em Java é descrita como sequencial, porém é possível modificar a sequência natural por meio de comandos de fluxo de controle, definindo a sequência de execução das instruções, seguindo caminhos alternativos em função da análise de determinadas condições. As instruções de controle estão divididas em seleção e repetição. É correto afirmar sobre os comandos Java que:

Alternativas
Comentários
  • a --> Um fluxo IF ELSE ( sem outro IF) so testa uma condição ( condição não importa a quantidade de subcondições)

    é uma única condição mesmo se : if( subcondição 1 && subcondição2)

    ou seja subcondição1 && subcondição2 são uma única condição.

    EX: if([condição])  

                  [comando 1]   // Executado se a condição for true

            else  

                  [comando 2]   // Executado se a condição for false

    b --> É possível contruir IF ELSE equivalente ao SWITCH e vice versa.

    c --> O fim do comando SWITCH pode ocorrer no bloco DEFAULT sem a necessidade do comando BREAK.

  • Então a alternativa correta deveria ser D?

  • Essa banca é uma piada!!

  • Eu também concordo que a letra D é a mais correta. Porém, só um comentário sobre a letra c:

    Só é possível identificar o fim do fluxo de um comando SWITCH até que seja encontrado o comando break.

    ERRADA. O break é uma forma. Porém, o fim do comando seria a outra. O DEFAULT não é, pois ele pode estar no meio do comando e, se não tiver o break, ele vai executar até o final do comando.

    ex.: int x = 7;
    switch (x) {
       case 2: System.out.println("2");
       default: System.out.println("default");
       case 3: System.out.println("3");
       case 4: System.out.println("4");
    }

    saída:

    default
    3
    4

     

  • por questões como essa que a CONSULPLAN é tida como uma banca fraca.

  • Essa banca é uma piada mesmo!

    Mas acredito que o "erro" da letra C é que não se limita o fim do fluxo com o 'break', pois fica parecendo que enquanto ele não encontrar um 'break' nunca irá parar, e isso não é verdade, sem o 'break' ele irá executar tudo depois que encontrar uma verdadeira, mas depois de ler todos ele irá "parar", ou seja, ter um fim...

  • Concordo também que deveria ser a letra D, contudo o gabarito que a questão aponta é a letra A. Não sei se foi um erro do QC ou se o gabarito oficial da Consulplan está assim mesmo. 

  • Pessoal, posso estar enganado, porém, segundo DEITEL - JAVA COMO PROGRAMAR, temos as formas de seleção: IF, IF-ELSE e SWITCH;

    Ao meu ver a letra D foi taxativa, ou seja, que somente teria em java as 2 estruturas de seleção que o enunciado afirmou, IF e SWITCH, no caso faltou o IF-ELSE. Por isso a incorreção da letra D.

  • Olha, muita gente não olhou a letra B. 

    Passaram direto por ela, mas ela está correta (em parte) também. Banca confusa. Se usar double no teste do IF, não dá para colocar no SWITCH.

    Agora sobre a letra A, eu imaginava que ele testava 1 condição apenas. No caso de IF ... ELSE se a primeira está false, ele não testa se a segunda está verdadeira. Isso ocorre caso seja ELSE IF. Logo, para finalizar, ele testa o IF e se ele é false, ele EXECUTA o ELSE.

    "The if-then-else statement provides a secondary path of execution when an "if" clause evaluates to false. "

    https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html

  • O gabarito A somente faz sentido se a banca estiver considerando como "duas condições" a própria expressão, ou seja,

    If (a>1 || b>0)

    {...}

    else

    {..}