SóProvas


ID
2756665
Banca
FAURGS
Órgão
BANRISUL
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

Considere o seguinte código.


/ / Se x é null, lança uma exceção do tipo NullPointerException

/ / Se não, retorna o índice do último elemento em x que é igual a y.

/ / Se esse elemento não existe, retorna -1.


public int findLast (int[] x, int y) {

for (int i=x.length-1; i > 0; i --)

{

if (x[i] == y)

return i;

}

return -1;

}


Para o código acima, foi definido o seguinte caso de teste:


x = [3,2,5,3], y = 3

Resposta esperada: 3


É correto afirmar que esse caso de teste

Alternativas
Comentários
  • E eu cai na pegadinha e ainda nao enxergo o erro.. Como ele alcança o defeito se dá return logo na 1a iteração?? (x[i] == y) => (x[3] == 3) => 3 == 3

  • Pra variar mais uma questão de TI mal escrita.

    mas eu ACHO que o defeito aqui está se referindo ao FOR que tem o problema de não tratar o array vazio (não nulo).


    então a execução passa pelo For sem dar problema, mas o teste chega a "alcançar" o defeito.


    Foi o que consegui deduzir. E depender de dedução é o que mais fazemos em questões de TI em concurso. Parecem que fazem questão de não serem claros.

  • o defeito é:

    i > 0

    isso vai fazer com que a primeira posição nunca seja testada

  • O defeito está na condição de parada do for: i > 0. Assim, o primeiro elemento do array de entrada nunca é verificado.

    Ou seja, o defeito esta no for, que é executado, mas o teste não ativa o erro nem mostra a falha.

    Resposta: B