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
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
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
[code]System.out.println(x);[/code]
Te retorna 11, ele foi incrementado na linha de cima ;)
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
Te retorna 11, ele foi incrementado na linha de cima
[quote=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[/quote]
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.