Entender o código!

7 respostas
snowblacksoul

Ola pessoal tudo bem!

Fiz um teste hoje numa empresa, e gostaria de uma explicação de vocês, pois não entendi a saída do código, o porque o resultado é : 10,9,7,4,0
Aqui está o código, alguém poderia me explicar o porque desse resultado, como chego a esse resultado sem executar o código, pois fiz o teste no papel somente! como chego a isso!

public class ttt {
    
    public static void main(String argv[]) {
        
        boolean b = false;
        String s = "teste";
        
        int[] vetor = {0,1,2,3,4,5,6,7,8,9,10};
        int j = 1;
        
        if((b ||!"teste".equals(s))&& vetor.length == 11){
            for(int i = 0; i<vetor.length;i+= j++){
                System.out.println(vetor[i]+" ");
            }
        }else{
            for(int i = vetor.length -1; i>=0;i -= j++){
                System.out.println(vetor[i]+" ");
            }
        }
 
    }
    
}

7 Respostas

Rodrigo_Sasaki

(b ||!"teste".equals(s)) é igual a (false || !true) que é igual a (false || false)Isso retorna false.

jeffev

Na linha

System.out.println(vetor[1]+" ");

está imprimindo a segunda posição do vetor essa linha se repete por estar dentro de um for, assim irá imprimir várias vezes o mesmo resultado.
E na linha int[] vetor = {0,1,2,3,4,5,6,7,8,9,10};
a segunda posição do vetor foi declarada como 1.

snowblacksoul

Desculpa digaoneves o código estava errado , agora está certo!!

Quanto a sua resposta ele não entra nesse if! e sim no else ok!

Rodrigo_Sasaki

é… sem o código certo fica difícil mesmo. O detalhe está no incremento do contador do for :for(int i = vetor.length -1; i>=0;i -= j++){ Faça o teste de mesa, ele começa com 10, e o j começa com valor 1.

veja que j é incrementado a cada iteração.

snowblacksoul

Cara ate começar com 10 e o j com 1 blz!!
mais nao entra na cabeça o fato do resultado dar 10:9:7:4 e 0, como é esse teste de mesa ?!

Rodrigo_Sasaki

Iteração 1:

i = 10
j = 1

vetor[i] = vetor[10] = 10

incremento -> i -= j++
i = i - j++
i = 10 - 1
i = 9
j = 2


Iteração 2:

i = 9
j = 2

vetor[i] = vetor[9] = 9

incremento -> i -= j++
i = i - j++
i = 9 - 2
i = 7
j = 3


Iteração 3:

i = 7
j = 3

vetor[i] = vetor[7] = 7

incremento -> i -= j++
i = i - j++
i = 7 - 3
i = 4
j = 4


Iteração 4:

i = 4
j = 4

vetor[i] = vetor[4] = 4

incremento -> i -= j++
i = i - j++
i = 4 - 4
i = 0
j = 5


Iteração 5:

i = 0
j = 5

vetor[i] = vetor[0] = 0

incremento -> i -= j++
i = i - j++
i = 0 - 5
i = -5
j = 6

snowblacksoul

Valeu digaoneves!!

abraços grande!!

Criado 12 de setembro de 2012
Ultima resposta 12 de set. de 2012
Respostas 7
Participantes 3