T� a� o teste...
Por�m...ouvi dizer aqui na lista que isto � dependente de plataforma...
N�o sei se � verdade... mas se for.... devemos ter muito cuidado mesmo....
Algu�m sabe dizer se � realmente verdade????
 
--------------------------------------------------------------
C:\Desenv\Java\teste>java testaI
Antes da terr�vel d�vida(i=i++;), i vale:0
Depois da terr�vel d�vida(i=i++;), i vale:0
Agora com (i=++i;), i vale:1
System.out.println(i) : 0
System.out.println(i++) : 0
System.out.println(i) : 1
Dentro do while (5>=i++), i vale:0
Dentro do while (5>=i++), i vale:1
Dentro do while (5>=i++), i vale:2
Dentro do while (5>=i++), i vale:3
Dentro do while (5>=i++), i vale:4
Dentro do while (5>=i++), i vale:5
Dentro do while (5>=i++), i vale:6
Dentro do while (5>=++i), i vale:0
Dentro do while (5>=++i), i vale:1
Dentro do while (5>=++i), i vale:2
Dentro do while (5>=++i), i vale:3
Dentro do while (5>=++i), i vale:4
Dentro do while (5>=++i), i vale:5
-----------------------------------------------------
public class testaI {
 
 int i;
 public testaI(){
 
  i =0;
  System.out.println("Antes da terr�vel d�vida(i=i++;), i vale:" + i);
  i = i++;
  System.out.println("Depois da terr�vel d�vida(i=i++;), i vale:" + i);
  i = ++i;
  System.out.println("Agora com (i=++i;), i vale:" + i);
 
  i=0;
  System.out.println("System.out.println(i) : " + i);
  System.out.println("System.out.println(i++) : " + i++);
  System.out.println("System.out.println(i) : " + i);
 
  i=0;
  do{
     System.out.println("Dentro do while (5>=i++), i vale:" + i);
    }while(5 >= i++);
 
    i=0;
      do{
         System.out.println("Dentro do while (5>=++i), i vale:" + i);
    }while(5 >= ++i);
 
 }
 
 public static void main(String [] arg){
  testaI app = new testaI();
 }
 
}
 
 
 
---------------------------------------------------------------
----- Original Message -----
Sent: Wednesday, February 27, 2002 3:36 AM
Subject: Re: RES: [java-list] c�digo obscuro!!

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