Operadores ++ e --

2 respostas
J

Galera, alguem sabe me explicar o que ocorre com este código?

public class Principal{
public static void main(String[] args){

int x = 10;
	System.out.println(x++ +2);
	System.out.println(x);

}

}

Saida:
12
11

2 Respostas

A
System.out.println(x++ +2);
Nessa linha vc está somando 2 no X e esta incrementando(++), mas esse tipo de incremento só vai ter valor na próxima linha, se vc quisesse que o incremento ja fosse feito ai, deveria fazer "++x" ao invez de 'x++" Por isso que
System.out.println(x);
Te retorna 11, ele foi incrementado na linha de cima ;)
T

jandiro:
Galera, alguem sabe me explicar o que ocorre com este código?

public class Principal{
    public static void main(String[] args) {
        int x = 10;
        System.out.println(x++ +2);
        System.out.println(x);
    }
}

Saida:
12
11

Off-topic
Acho que os operadores ++ e – devem ter seu uso policiado, para evitar tais coisas que estão definidas na linguagem (e são herança do C++) mas que são difíceis de entender, e de qualquer maneira nem sempre são úteis. Por exemplo, seria mais claro fazer (e gera exatamente os mesmos bytecodes):

public class Principal{
    public static void main(String[] args) {
        int x = 10;
        System.out.println(x + 2);
        x++; // (ou ++x, neste caso tanto faz)
        System.out.println(x);
    }
}

Para todos (desde os principiantes até os “masters of the universe” ) :

É aconselhável usar ++ ou – apenas sozinho (como ++x), não em combinações (como x++ + 2), que embora estejam claramente definidas na linguagem (não é o caso do C++), são difíceis de entender.

Criado 24 de novembro de 2004
Ultima resposta 25 de nov. de 2004
Respostas 2
Participantes 3