-
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
{..}