A quest�o � que:
 
(1) i=0;
(2) i=i++; (atribuir e depois incrementar) ou i=++i (incrementar e depois atribuir)
(3) valor de i
 
Tanto faz (na segunda linha) a atribui��o ser antes ou depois do incremento de i, pois chegando na linha 3 o incremento em i deveria ter ocorrido, j� que na linha 2 um incremento tem que ocorrer.
 
Dei uma id�ia sobre isso num e-mail anterior, mas a d�vida continua.
S� pode ser coisa da linguagem mesmo, por que pela l�gica de programa��o deveria dar 1 em ambos os casos. Tanto � se voc�s testarem com as linhas de comando (1) k=i++ e (2)k=++i, os resultados s�o  realmente os esperados (1) k=0, i=1. (2) k=1, i=1.
 
 
----- Original Message -----
Sent: Wednesday, February 27, 2002 1:45 PM
Subject: Re: RES: [java-list] c�digo obscuro!!

[EMAIL PROTECTED]" type="cite">
Algu�m pode explicar porque a seguinte implementa��o retorna 0 (zero)?

{
int i = 0;
i = i++;
System.out.println(i);
}

N�o seria mais 'l�gico' retornar 1, como em C++ ?


N�o, porque quando voc� coloca i++, ele atribui antes de adicionar. Ali�s,
porque n�o fazer i++ direto, ou voc� s� estava fazendo um teste?

Por�m, de qualquer forma, mesmo atribuindo antes de adicionar ele deveria fazer igual o C++ uma vez que a precedencia em C++ � igual.
-- 
"'You guys (at Microsoft) still don't get it,' 
because it's sort of Java with reliability, productivity and security deleted."

					James Gosling


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.325 / Virus Database: 182 - Release Date: 02/19/2002

Responder a